我有一个文件名为 SMITH 3H FINAL 03-26-2012.dwg 的 dwg 文件,我正在尝试为验证目的找到正确的正则表达式,因为我每周将有 100 个文件我需要验证文件名的格式是正确的。我对正则表达式知之甚少,我在下面找到了一些代码,但它没有通过有效。如果我正确阅读了第一行,那么它是否期望文件名中有一个逗号,这就是为什么它没有通过有效?
string filenamePattern = String.Concat("^",
"([a-z',-.]+\\s+)+", // HARRIS, SMITH
"(\\d{1,2}-\\d{1,2}){1}\\s+", // 09-06
"([a-z]+\\s)*", //
"((\\#?\\s*(\\d(\\s*|,))*\\d*-\\d+-?H?D?\\d*?),*\\s+(&\\s)*)+", // #5,6-11H & #4,7,8-11H2, etc
"([a-z()-]+\\s)*", // CLIP-OUT (FINAL)
"(\\d{1,2}-\\d{1,2}(-\\d{2}|-\\d{4})){1}", // 05-11-2009
"\\.dwg", // .dwg
"$");
RegexOptions options = (RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline | RegexOptions.IgnoreCase);
Regex reg = new Regex(filenamePattern, options);
if (reg.IsMatch(filename))
{
valid = true;
}