Метод EnumerateMatches
EnumerateMatches возвращает
перечисление структур ValueMatch
с полями Index и Length.
Так можно обойти текст, не создавая
полный Match
для каждого фрагмента. Число совпадений
считает
Count.
Синтаксис
foreach (ValueMatch m in regex.EnumerateMatches(input))
{
}
Пример
Давайте выведем Index и Length
для цифр в "a1b2":
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
var regex = new Regex(@"\d");
foreach (ValueMatch m in regex.EnumerateMatches("a1b2"))
{
Console.WriteLine($"{m.Index} {m.Length}");
}
}
}
Результат выполнения кода:
1 1
3 1
Пример
Давайте обойдем совпадения шаблона
bc в "abcde":
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
var regex = new Regex(@"bc");
foreach (ValueMatch m in regex.EnumerateMatches("abcde"))
{
Console.WriteLine($"{m.Index} {m.Length}");
}
}
}
Результат выполнения кода:
1 2
Пример
Давайте вызовем статический
Regex.EnumerateMatches:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
foreach (ValueMatch m in Regex.EnumerateMatches("12345", @"\d"))
{
Console.WriteLine(m.Length);
}
}
}
Результат выполнения кода:
1
1
1
1
1