1
を実行しているものに基づいて別のマッチを返します231ファイル。正規表現は、私は、次の正規表現を使用している表現
私は同じフォルダを反復処理すると、すべてのファイルを取得するためにC#を使用している場合は、私は223個のファイルで1070試合を取得します。
static string uat04Dir = @"C:\Users\me\Desktop\UAT04_Generated_Scripts\";
static void Main(string[] args)
{
Regex r = new Regex(@"(PatientID).*?[\d]+");
int matchCounter = 0;
int fileCounter = 0;
string[] files = Directory.GetFiles(uat04Dir, "*.sql", SearchOption.AllDirectories);
foreach (string file in files)
{
string lines = File.ReadAllText(file);
MatchCollection matches = r.Matches(lines, 0);
matchCounter += matches.Count;
if (matches.Count > 0)
fileCounter++;
}
Console.WriteLine(String.Format("{0} Matches in {1} files.", matchCounter, fileCounter));
}
なぜこの結果が異なるのですか?
メモ帳++では、大文字と小文字を区別しない検索を使用しています。 C#では、検索で大文字と小文字が区別されます。 'RegexOptions.IgnoreCase'フラグを付けて正規表現をコンパイルし、同じ結果が得られるかどうか確認してください。 –
どのようにする必要があります:例http://imgur.com/a/gpVDA対http://imgur.com/a/SBwvz – sln