如何才能使用正则表达式获取第一行多行文字?
string test = @"just take this first line
even there is
some more
lines here";
Match m = Regex.Match(test, "^", RegexOptions.Multiline);
if (m.Success)
Console.Write(m.Groups[0].Value);
答案 0 :(得分:39)
如果你只需要第一行,你就可以不使用像这样的正则表达式
var firstline = test.Substring(0, test.IndexOf(Environment.NewLine));
尽管我喜欢正则表达式,但你并不是真的需要它们,所以除非这是一些更大的正则表达式练习的一部分,否则我会在这种情况下寻求更简单的解决方案。
答案 1 :(得分:11)
string test = @"just take this first line
even there is
some more
lines here";
Match m = Regex.Match(test, "^(.*)", RegexOptions.Multiline);
if (m.Success)
Console.Write(m.Groups[0].Value);
.
经常被吹捧为匹配任何角色,而这并非完全正确。仅当您使用.
选项时,RegexOptions.Singleline
才会匹配任何字符。如果没有此选项,它将匹配除'\n'
(行尾)之外的任何字符。
那就是说,更好的选择可能是:
string test = @"just take this first line
even there is
some more
lines here";
string firstLine = test.Split(new string[] {Environment.NewLine}, StringSplitOptions.None)[0];
击> <击> 撞击> 更好的是Brian Rasmussen的版本:
string firstline = test.Substring(0, test.IndexOf(Environment.NewLine));
答案 2 :(得分:1)
试试这个:
Match m = Regex.Match(test, @".*\n", RegexOptions.Multiline);