1
我一直在與這個問題奮鬥了幾天。C# - 正則表達式 - 獲取兩行之間的字符串
問題:如何在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」顯示處理器名稱應該在「組[1]」中捕獲,但是當我試圖將其轉儲到消息框時沒有捕獲任何東西。
任何意見將不勝感激!
謝謝!
你讀的文件轉換成一個線陣列,並使用正則表達式來匹配多個行。這是不可能的。如果你想閱讀一個完整的文件,將它全部讀入一個變量,然後用換行符在整個文本中使用你的正則表達式。 –