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