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