我需要一個正則表達式來匹配所有在第二行。C#RegEx匹配所有在第二行
First Line
Second Line
我試過使用\ n(。*)\ n但它返回空值。
Match match in Regex.Matches(line, @"\n(.*)\n", RegexOptions.Multiline)
我需要一個正則表達式來匹配所有在第二行。C#RegEx匹配所有在第二行
First Line
Second Line
我試過使用\ n(。*)\ n但它返回空值。
Match match in Regex.Matches(line, @"\n(.*)\n", RegexOptions.Multiline)
隨着在RegexOptions.MultiLine
啓用後,您可以使用以下命令:
\n^(.*)$
當Multiline
啓用,^
和$
將匹配的開始和結束一行而不是字符串的開始和結束。
實施例:Regex101
你不需要爲正則表達式。剛上線拆分輸入字符串,並得到你需要行:
var line= @"First Line
Second Line";
var secondLine = line.Split('\n')[1]; // "Second Line"
您還可以得到所需的行通過索引,以避免IndexOutOfRange
例外前檢查線路的數量在您的字符串。
即使正則表達式,最好使用Split
方法,如果你要通過一些價值分裂輸入(但同樣,如果你是單純的開裂線沒有一些模式是矯枉過正):
var secondLine = Regex.Split(line, Environment.NewLine)[1];
在非常長的字符串中使用此操作可能會產生很大的開銷 - 如果您希望字符串非常長,則可以使用.IndexOf()和.Substring()的組合更好地查找\ n的前兩個索引,並創建一個子字符串在這些之間2. – Compufreak
@Compufreak同意,但很長的字符串通常來自文件。在這種情況下,我會簡單地使用'File.ReadLines(fileName).Skip(n).FirstOrDefault()' –
使用'變種匹配= Regex.Match(線,@ 「\ n(*)。」)組[1] .Value' –