Метод stringMatch
Метод stringMatch класса RegExp ищет первое совпадение регулярного выражения в переданной строке. В первый параметр мы передаем строку, в которой нужно выполнить поиск. Метод возвращает объект RegExpMatch, если совпадение найдено, или null, если совпадений нет. Полученный объект содержит информацию о найденном совпадении: сам текст совпадения, его позицию в строке, а также группы захвата.
Обратите внимание, что метод stringMatch ищет только первое совпадение. Если нужно найти все совпадения, следует использовать метод allMatches.
Синтаксис
RegExpMatch? stringMatch(String string)
Пример
Давайте найдем первое совпадение с шаблоном [a-z]+ в строке 'abcde 12345':
void main()
{
RegExp regExp = RegExp(r'[a-z]+');
RegExpMatch? res = regExp.stringMatch('abcde 12345');
if (res != null) {
print(res.group(0));
} else {
print('no match');
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте получим позицию найденного совпадения и проверим работу метода, когда совпадений нет:
void main()
{
RegExp regExp = RegExp(r'\d+');
RegExpMatch? res = regExp.stringMatch('abcde 12345');
if (res != null) {
print(res.start);
print(res.end);
} else {
print('no match');
}
RegExpMatch? res2 = regExp.stringMatch('abcde');
print(res2);
}
Результат выполнения кода:
6
11
null
Пример
Давайте используем группы захвата и извлечем отдельные части найденного совпадения:
void main()
{
RegExp regExp = RegExp(r'(\d+)-(\d+)');
RegExpMatch? res = regExp.stringMatch('abcde 12345-67890');
if (res != null) {
print(res.group(0));
print(res.group(1));
print(res.group(2));
} else {
print('no match');
}
}
Результат выполнения кода:
"12345-67890"
"12345"
"67890"
Смотрите также
-
метод
firstMatch,
который возвращает первое совпадение в виде объекта RegExpMatch -
метод
allMatches,
который возвращает все совпадения в строке -
метод
hasMatch,
который проверяет наличие совпадения -
класс
RegExp,
который представляет регулярное выражение