Свойство isMultiLine
Свойство isMultiLine класса RegExp возвращает логическое значение:
true, если регулярное выражение было создано с флагом multiLine,
и false в противном случае. Флаг multiLine включается
третьим параметром конструктора RegExp. Когда этот флаг установлен,
символы ^ и $ совпадают не только с началом и концом
всей строки, но и с началом и концом каждой строки внутри текста.
Синтаксис
RegExp(pattern).isMultiLine
Пример
Давайте создадим регулярное выражение с флагом multiLine
и проверим значение свойства isMultiLine:
void main()
{
RegExp regExp = RegExp('^abc', multiLine: true);
print(regExp.isMultiLine);
}
Результат выполнения кода:
true
Пример
Давайте создадим регулярное выражение без флага multiLine
и проверим значение свойства isMultiLine:
void main()
{
RegExp regExp = RegExp('^abc');
print(regExp.isMultiLine);
}
Результат выполнения кода:
false
Пример
Давайте посмотрим, как флаг multiLine влияет на поиск совпадений.
Сначала найдём все вхождения в многострочном тексте без флага:
void main()
{
String str = 'abcde\nabcde\nabcde';
RegExp regExp = RegExp('^abcde');
print(regExp.allMatches(str).length);
}
Результат выполнения кода:
1
Теперь включим флаг multiLine и снова найдём все вхождения:
void main()
{
String str = 'abcde\nabcde\nabcde';
RegExp regExp = RegExp('^abcde', multiLine: true);
print(regExp.allMatches(str).length);
}
Результат выполнения кода:
3
Смотрите также
-
класс
RegExp,
который представляет регулярное выражение -
свойство
pattern,
которое возвращает исходный шаблон -
свойство
isCaseSensitive,
которое проверяет учёт регистра -
свойство
isDotAll,
которое проверяет флаг dotAll