Фигурные скобки в регулярках Dart
Операторы '+', '*', '?'
хороши, однако, с их помощью нельзя указать
конкретное число повторений. В этом случае
вам на помощь придет оператор {}.
Работает он следующим образом: {5}
- пять повторений, {2,5} - повторяется
от двух до пяти (оба включительно), {2,}
- повторяется два и более раз. Посмотрите
примеры:
В данном примере шаблон поиска выглядит
так: буква 'x', буква 'a'
один или два раза, буква 'x':
var txt = "xx xax xaax xaaax";
var res = txt.replaceAll(RegExp(r'xa{1,2}x'), "!");
print(res);
Результат выполнения кода:
'xx ! ! xaaax';
В данном примере шаблон поиска выглядит
так: буква 'x', буква 'a'
два раза и более, буква 'x':
var txt = "xx xax xaax xaaax";
var res = txt.replaceAll(RegExp(r'xa{2,}x'), "!");
print(res);
Результат выполнения кода:
'xx xax ! !';
В данном примере шаблон поиска выглядит
так: буква 'x', буква 'a'
три раза, буква 'x':
var txt = "xx xax xaax xaaax";
var res = txt.replaceAll(RegExp(r'xa{3}x'), "!");
print(res);
Результат выполнения кода:
'xx xax xaax !';
В данном примере шаблон поиска выглядит
так: буква 'a' десять раз:
var txt = "aaa aaaaaaaaaa aaa";
var res = txt.replaceAll(RegExp(r'a{10}'), "!");
print(res);
Результат выполнения кода:
'aaa ! aaa';
В данном примере шаблон такой: буква
'x', буква 'a' от нуля до трех
раз, буква 'x'. Нижнюю границу пишут
нулем:
var txt = "xx xax xaax xaaax";
var res = txt.replaceAll(RegExp(r'xa{0,3}x'), "!");
print(res);
Результат выполнения кода:
'! ! ! !';
Дана строка:
var txt = "aa aba abba abbba abbbba abbbbba";
Напишите регулярку, которая найдет строки
'abba', 'abbba', 'abbbba'
и только их.
Дана строка:
var txt = "aa aba abba abbba abbbba abbbbba";
Напишите регулярку, которая найдет строки
вида 'aba', в которых 'b'
встречается менее 3-х раз (включительно).
Дана строка:
var txt = "aa aba abba abbba abbbba abbbbba";
Напишите регулярку, которая найдет строки
вида 'aba', в которых 'b'
встречается более 4-х раз (включительно).