我想用这种格式验证文件名: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;
}
Run Code Online (Sandbox Code Playgroud)
但是,我无法让它发挥作用.
我错过了什么?
您不是在开头匹配数字.您的模式应该是:^[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");
}
}
}
Run Code Online (Sandbox Code Playgroud)