使用正则表达式提取文本的最后一行

本文关键字:一行 最后 正则表达式 提取 取文本 | 更新日期: 2023-09-27 18:03:00

我需要使用正则表达式从多行字符串中提取最后一行。我试图使用单行模式,如以下@"'n(.*?)$",但不幸的是,它提取了从第二行开始到结束的文本。有提示吗?

谢谢!

使用正则表达式提取文本的最后一行

@"([^'n'r]*)$"

这意味着匹配直到字符串末尾除换行符以外的所有字符。

嗯,我想一下,如果你不使用DOTALL修饰符那么这应该没问题

@"(.*)$"

如果没有这个修饰符,.将不匹配换行符。所以开头不需要'n

尝试不使用RegEx

string literal = @"I 
am
the
best"; //With 'n
string[] lines = literal.Split(new string[] { "'n" }, StringSplitOptions.None);
string lastLine = lines[lines.Length - 1];
Console.WriteLine(lastLine); //Should print "best"
与正则表达式:

Match m = Regex.Match(literal, @"'n*.+$");
Console.WriteLine(m.Value); //Should be @"'nbest"