ファイル名が SMITH 3H FINAL 03-26-2012.dwg の dwg ファイルがあり、検証目的で正しい正規表現を見つけようとしています。毎週何百ものファイルがあるため、ファイル名の形式を確認する必要があります。正しい。私は正規表現についてほとんど知りません。以下にいくつかのコードを見つけましたが、有効なものとして渡されません。最初の行を正しく読んでいる場合、ファイル名にコンマが必要なので、有効なものとして渡されませんか?
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;
}