我想验证这种格式的文件名:LetterNumber_Enrollment_YYYYMMDD_HHMM.xml
string filename = "Try123_Enrollment_20130102_1200.xml";
Regex pattern = new Regex(@"[a-zA-z]_Enrollment_[0-9]{6}_[0-9]{4}\\.xml");
if (pattern.IsMatch(filename))
{
return isValid = true;
}
但是,我无法让它工作。
我在这里遗漏了什么吗?
请您参考如下方法:
您没有匹配开头的数字。您的模式应该是:^[A-Za-z0-9]+_Enrollment_[0-9]{8}_[0-9]{4}\.xml$ 以匹配给定的字符串。
变化:
- 您的字符串在第一个
_符号之前以字母数字字符串开头,因此您需要同时检查(字母和数字)。 - 在
Environment_部分之后,您的数字长度为 8 而不是 6。 - 不需要双
\。您只需要转义点(即\.)。
using System;
using System.Text.RegularExpressions;
class Test {
static void Main() {
string filename = "Try123_Enrollment_20130102_1200.xml";
Regex pattern = new Regex(@"^[A-Za-z0-9]+_Enrollment_[0-9]{8}_[0-9]{4}\.xml$");
if (pattern.IsMatch(filename))
{
Console.WriteLine("Matched");
}
}
}
