Параметры RegExp в Dart
Конструктор RegExp принимает именованные
аргументы: учет регистра, многострочность,
поведение точки и другие правила. Часто
используют caseSensitive, multiLine
и dotAll:
var regex = RegExp(r'hello', caseSensitive: false);
print(regex.hasMatch("HELLO"));
Несколько параметров указывают в одном вызове конструктора:
var regex = RegExp(r'^line', multiLine: true, caseSensitive: false);
var txt = "First\nLINE two";
print(regex.firstMatch(txt)?.group(0));
Без учета регистра шаблон [a-z]+ найдет буквы любого регистра:
var txt = "aaa AAA bbb BBB";
var res = txt.replaceAll(RegExp(r'[a-z]+', caseSensitive: false), "!");
print(res);
Точка без dotAll: true не совпадает с переводом
строки. С параметром заменяются все символы:
var txt = "aaa\nbbb";
var without = txt.replaceAll(RegExp(r'.'), "!");
var withFlag = txt.replaceAll(RegExp(r'.', dotAll: true), "!");
print(without);
print(withFlag);
Дана строка:
var txt = "Kotlin KOTLIN kotlin";
Проверьте, встречается ли слово "kotlin"
без учета регистра, и выведите результат
в консоль.
Дана строка:
var txt = "Code CODE code";
Замените каждое слово "code" на
"*" без учета регистра и выведите
строку в консоль.