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

时间:2011-07-19 14:28:20

标签: c# regex line

我需要使用正则表达式从多行字符串中仅提取最后一行。我试图使用像@“\ n(。*?)$”之类的SingleLine模式,但不幸的是它从第二行到结尾提取文本。任何提示?

谢谢!

2 个答案:

答案 0 :(得分:5)

这样的东西
@"([^\n\r]*)$"

这意味着匹配不是换行符的所有内容,直到字符串结尾。

好吧,当我考虑它时,当你不使用DOTALL修饰符时,这应该没问题

@"(.*)$"

如果没有此修饰符,.与换行符不匹配。所以开头不需要\n

答案 1 :(得分:1)

在没有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"