私は数日間この質問にぶつかってきました。C# - RegEx - 2行の間で文字列を取得
質問: C#で検索条件に一致する複数の文字列を取得するにはどうすればよいですか?
は、ファイルのすべての行を読む:
は、ここに私の現在のプロセスです。
text_file = "C:\test.txt"; string[] file_text = File.ReadAllLines(text_file);
ループファイルの各ラインを通ると一致
ここforeach (string line in file_text) { Regex r1 = new Regex(@"Processor\(s\):\s+.+\n\s+(.+)\nBIOS Version:"); Match match1 = r1.Match(line); if (match1.Success) { string processor = match1.Groups[1].Value; // Just to see if I matched anything System.Windows.MessageBox.Show(processor); } }
は、例えば、テキストでの検索:
はProcessor(s): 1 Processor(s) Installed. [01]: Intel64 Family 6 Model 23 Stepping 10 GenuineIntel ~2826 Mhz BIOS Version: Phoenix Technologies LTD 6.00, 7/30/2013
問題:私が使用しましたウェブサイト "RegExr"と "Regex101"は、プロセッサ名"Groups [1]"でキャプチャする必要がありますが、メッセージボックスにダンプしようとするとキャプチャされるものは何も表示されません。
アドバイスをいただければ幸いです!
ありがとうございました!
あなたはラインアレイにファイルを読み込み、複数の行に一致するように正規表現を使用しています。これは不可能です。ファイル全体を読み込みたい場合は、すべてを変数に読み込み、正規表現を改行でテキスト全体に使用してください。 –