Метод allMatches
Метод allMatches класса Pattern
выполняет поиск всех вхождений регулярного
выражения в переданной строке и возвращает
итератор Iterable<RegExpMatch>.
В первый параметр мы передаем строку, в которой
нужно выполнить поиск. Второй параметр задает
начальную позицию поиска в строке (по умолчанию
равен 0). Метод не изменяет исходную строку,
а лишь возвращает ленивый итератор совпадений.
Синтаксис
pattern.allMatches(string, [start])
Пример
Давайте найдем все вхождения цифр в строке и выведем каждое совпадение:
void main()
{
RegExp pattern = RegExp(r'\d');
String str = 'a1b2c3';
Iterable<RegExpMatch> matches = pattern.allMatches(str);
for (RegExpMatch match in matches) {
print(match.group(0));
}
}
Результат выполнения кода:
"1"
"2"
"3"
Пример
Давайте найдем все слова, состоящие из букв, и выведем их вместе с позицией начала:
void main()
{
RegExp pattern = RegExp(r'[a-z]+');
String str = 'abc 123 def';
Iterable<RegExpMatch> matches = pattern.allMatches(str);
for (RegExpMatch match in matches) {
print('${match.group(0)} at ${match.start}');
}
}
Результат выполнения кода:
"abc at 0"
"def at 8"
Пример
Давайте передадим второй параметр, чтобы начать поиск с определенной позиции:
void main()
{
RegExp pattern = RegExp(r'\d');
String str = '12345';
Iterable<RegExpMatch> matches = pattern.allMatches(str, 2);
for (RegExpMatch match in matches) {
print(match.group(0));
}
}
Результат выполнения кода:
"3"
"4"
"5"
Смотрите также
-
класс
RegExp,
который создает регулярное выражение -
метод
firstMatch,
который возвращает первое совпадение -
метод
hasMatch,
который проверяет наличие совпадения -
свойство
pattern,
которое возвращает исходный шаблон