Класс Pattern
Класс Pattern является абстрактным базовым классом
для всех шаблонов поиска в строках. Он определяет
общий интерфейс для поиска совпадений, который
реализуется классами RegExp и String.
Класс Pattern предоставляет методы для поиска
совпадений в строках, но не может быть создан напрямую,
так как является абстрактным. Вместо этого используются
его конкретные реализации.
Синтаксис
abstract class Pattern {
Iterable<Match> allMatches(String string, [int start = 0]);
Match? matchAsPrefix(String string, [int start = 0]);
}
Пример
Давайте создадим регулярное выражение с помощью
класса RegExp, который наследуется от Pattern,
и найдем все совпадения в строке:
void main()
{
Pattern pattern = RegExp(r'\d+');
String str = 'abc123def456';
Iterable<Match> matches = pattern.allMatches(str);
for (Match match in matches)
{
print(match.group(0));
}
}
Результат выполнения кода:
"123"
"456"
Пример
Давайте проверим, начинается ли строка с определенного
шаблона, используя метод matchAsPrefix:
void main()
{
Pattern pattern = RegExp(r'abc');
String str = 'abcde';
Match? match = pattern.matchAsPrefix(str);
if (match != null)
{
print('Match found: ${match.group(0)}');
}
else
{
print('No match');
}
}
Результат выполнения кода:
"Match found: abc"
Пример
Давайте используем строку как Pattern для поиска
подстроки в другой строке:
void main()
{
Pattern pattern = '123';
String str = 'abc123def';
Iterable<Match> matches = pattern.allMatches(str);
for (Match match in matches)
{
print('Found at index: ${match.start}');
print('Matched text: ${match.group(0)}');
}
}
Результат выполнения кода:
"Found at index: 3"
"Matched text: 123"
Смотрите также
-
класс
RegExp,
который реализует Pattern для регулярных выражений -
метод
allMatches,
который находит все совпадения в строке -
метод
matchAsPrefix,
который проверяет совпадение в начале строки -
метод
escape,
который экранирует специальные символы