Multiline
RegexOptions.Multiline меняет якоря
^ и $: они привязываются к началу
и концу каждой строки, а не только всего текста.
Точка по-прежнему не совпадает с \n
- для этого нужен
Singleline.
См. также якоря.
Синтаксис
new Regex(@"^text", RegexOptions.Multiline);
Пример
Давайте найти цифру в начале второй строки:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string text = "abcde\n12345";
var re = new Regex(@"^\d", RegexOptions.Multiline);
Console.WriteLine(re.IsMatch(text));
}
}
Результат выполнения кода:
True
Пример
Давайте посчитать совпадения ^\d с флагом:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string text = "12345\nabcde";
int res = Regex.Matches(text, @"^\d", RegexOptions.Multiline).Count;
Console.WriteLine(res);
}
}
Результат выполнения кода:
1
Пример
Давайте проверить ^abc на первой строке:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string text = "abcde\n12345";
Console.WriteLine(Regex.IsMatch(text, @"^abc", RegexOptions.Multiline));
}
}
Результат выполнения кода:
True
Смотрите также
-
флаг
Singleline,
который меняет поведение точки -
якорь
anchor,
который ведёт себя иначе при Multiline -
перечисление
RegexOptions,
куда входит Multiline -
класс
Regex,
которому передают флаги