How can I get only the first line of multiline text using regular expressions?
string test = @\"just take this first line
even there is
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);
.
is often touted to match any character, while this isn't totally true. .
matches any character only if you use the RegexOptions.Singleline
option. Without this option, it matches any character except for '\n'
(end of line).
That said, a better option is likely to be:
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];
And better yet, is Brian Rasmussen's version:
string firstline = test.Substring(0, test.IndexOf(Environment.NewLine));
If you just need the first line, you can do it without using a regex like this
var firstline = test.Substring(0, test.IndexOf(Environment.NewLine));
As much as I like regexs, you don't really need them for everything, so unless this is part of some larger regex exercise, I would go for the simpler solution in this case.
Try this one:
Match m = Regex.Match(test, @".*\n", RegexOptions.Multiline);