Класс RegExp
Класс RegExp создает объект регулярного
выражения, с помощью которого можно искать
совпадения в строках, проверять их наличие
и выполнять замену. Первым параметром в
конструктор передается строка с шаблоном
регулярного выражения. Вторым необязательным
параметром передается объект с настройками:
multiLine, caseSensitive,
dotAll и unicode.
Синтаксис
RegExp(pattern, [options])
Параметр pattern задает шаблон
регулярного выражения. Параметр options
принимает объект типа RegExpOptions
для настройки поведения.
Пример
Давайте создадим регулярное выражение и проверим наличие совпадения в строке:
void main()
{
RegExp regExp = RegExp(r'bcd');
bool res = regExp.hasMatch('abcde');
print(res);
}
Результат выполнения кода:
true
Пример
Давайте найдем первое совпадение по шаблону,
где \d обозначает цифру, а + -
одно и более повторений:
void main()
{
RegExp regExp = RegExp(r'\d+');
RegExpMatch? res = regExp.firstMatch('abc123de45');
print(res?.group(0));
}
Результат выполнения кода:
"123"
Пример
Давайте найдем все совпадения в строке и выведем их:
void main()
{
RegExp regExp = RegExp(r'\d+');
Iterable<RegExpMatch> matches = regExp.allMatches('abc123de45');
for (RegExpMatch match in matches) {
print(match.group(0));
}
}
Результат выполнения кода:
"123"
"45"
Пример
Давайте выполним замену всех цифр на символ
X с помощью регулярного выражения:
void main()
{
RegExp regExp = RegExp(r'\d+');
String res = 'abc123de45'.replaceAll(regExp, 'X');
print(res);
}
Результат выполнения кода:
"abcXdeX"
Пример
Давайте создадим регистронезависимое регулярное выражение и проверим совпадение:
void main()
{
RegExp regExp = RegExp(r'abc', caseSensitive: false);
bool res = regExp.hasMatch('ABCDE');
print(res);
}
Результат выполнения кода:
true
Смотрите также
-
метод
hasMatch,
который проверяет наличие совпадения -
метод
firstMatch,
который возвращает первое совпадение -
метод
allMatches,
который возвращает все совпадения -
свойство
pattern,
которое возвращает шаблон регулярного выражения