Home

Search

C# RegexOptions.MultilineUse Regex.Matches and RegexOptions.Multiline to simplify handling multiple lines at once.
dot net perls

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.

Details, problem. 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

An example. 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."

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
using System; using System.Text.RegularExpressions; class Program { 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, "^(.+)$", RegexOptions.Multiline); foreach (Match match in matches) { // Loop through captures. foreach (Capture capture in match.Captures) { // Display them. Console.WriteLine("--" + capture.Value); } } } }
--This string --has two lines

Notes, RegexOptions. 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.Compiled

RegexOptions.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.

Home
© 2007-2021 sam allen. send bug reports to info@dotnetperls.com.