Класс Match
Класс Match представляет собой результат
успешного поиска совпадения регулярного
выражения в строке. Объект этого класса
содержит найденную подстроку, её позицию
в исходной строке, а также информацию
о группах захвата. Объект Match
обычно возвращается методами firstMatch
и allMatches класса RegExp,
а также доступен через свойство match
класса String. Класс не имеет
публичного конструктора - экземпляры
создаются автоматически при поиске совпадений.
Синтаксис
Match match = regExp.firstMatch(str)
Свойства
Класс Match предоставляет следующие
основные свойства:
match.start // начальная позиция совпадения
match.end // конечная позиция совпадения
match.input // исходная строка
match.pattern // использованное регулярное выражение
match.groupCount // количество групп захвата
Пример
Давайте найдём первое совпадение цифр в строке и выведем позицию найденной подстроки:
void main()
{
RegExp regExp = RegExp(r'\d+');
Match? match = regExp.firstMatch('abcde 12345');
print(match?.start);
print(match?.end);
}
Результат выполнения кода:
6
11
Пример
Давайте получим саму найденную подстроку
через индексацию объекта Match:
void main()
{
RegExp regExp = RegExp(r'\d+');
Match? match = regExp.firstMatch('abcde 12345');
print(match?[0]);
}
Результат выполнения кода:
"12345"
Пример
Давайте переберём все совпадения в строке
с помощью метода allMatches:
void main()
{
RegExp regExp = RegExp(r'\d+');
Iterable<Match> matches = regExp.allMatches('1 22 333');
for (Match match in matches) {
print(match.start);
print(match[0]);
}
}
Результат выполнения кода:
0
"1"
2
"22"
5
"333"
Смотрите также
-
метод
group,
который возвращает группу захвата по номеру -
метод
groups,
который возвращает список всех групп захвата -
свойство
groupCount,
которое возвращает количество групп захвата -
свойство
input,
которое возвращает исходную строку поиска