C# RegexOptions.MultilineUse Regex.Matches and RegexOptions.Multiline to simplify handling multiple lines at once.
RegexOptions.Multiline. This Regex option makes handling multiple lines easier. With it, we can apply a regular expression over an input string that has many lines.
Each line in the input string should be tested against the entire regular expression. To restate, a newline means a separate part of the string.Regex
We deal with specific control characters in the regular expression pattern. We can use the "^" char to specify the start of the input string, and "$" to specify the end of it.
Example: We specify one or more characters between the start and the end of each line. The plus means "one or more."Plus
Capture: The pattern matches each line in a capture. We use 2 foreach-loops to enumerate the results and print them to the screen.Foreach
Info: We see how the RegexOptions.Multiline argument was passed as the third parameter to the Regex.Matches static method.
C# program that uses RegexOptions.Multiline
static void Main()
// Input string.
const string example = @"This string
has two lines";
// Get a collection of matches with the Multiline option.
MatchCollection matches = Regex.Matches(example, "^(.+)$",
foreach (Match match in matches)
// Loop through captures.
foreach (Capture capture in match.Captures)
// Display them.
Console.WriteLine("--" + capture.Value);
--has two lines
We can use an enumerated constant with Regex methods. There are other RegexOptions you can consider. For complicate problems, a RegexOptions enum is often needed.RegexOptions.CompiledRegexOptions.IgnoreCase
A summary. RegexOptions.Multiline is useful for treating each separate line in an input string as a separate input. This can make dealing with long input strings much easier.
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to email@example.com.