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