Уроки модуля (3/4)
Флаг `m`: многострочный
С флагом m (многострочный) привязки ^ и $ меняют значение:
они больше не являются началом/концом ** всей строки**, а являются началом/концом **
каждая строка**. Строка ограничивается \n (или началом/концом строки).
строка).
Pattern: ^Errore
Flag: gm
Sample: Errore: A\nInfo: B\nErrore: C
^^^^^^ ^^^^^^Без m он соответствовал бы только Errore в абсолютном начале
образец (1 совпадение). При использовании m он соответствует началу каждой строки (2
совпадения).
m НЕ меняет точку
Распространенная путаница: флаг m НЕ меняет значение точки.
.. Точка по-прежнему НЕ соответствует \n даже с m. Чтобы поставить точку
сопоставьте все, что вам нужно, с флагом s (описанным в модуле 1).
m и s ортогональны: их можно использовать вместе (ms), по отдельности,
или ни того, ни другого.
Многострочный флаг и построчная обработка
Флаг m изменяет поведение ^ и $, заставляя их соответствовать началу и концу каждой строки (разделенной \\n) внутри многострочного текстового блока, вместо того, чтобы просматривать только абсолютное начало и конец всей строки.
Попробуйте это
Найдите каждую строку, начинающуюся с «ERROR». Каждая строка разделяется \\n; используйте флаги `g` и `m`.
Показать подсказку
Флаг m заставляет ^ соответствовать началу внутренних строк, а не только абсолютному первому символу.
Решение доступно после 3 попыток
Обзор упражнения
Найдите каждую строку, которая ЗАКАНЧИВАЕТСЯ точкой. Используйте якорь `$` с флагами `m` и `g`.
Показать подсказку
\\.$ с флагами GM соответствует точке в конце каждой строки, а не только в конце образца.
Решение доступно после 3 попыток
Дополнительная задача
Find all lines in a multiline log that start exactly with the string `ID:` followed by a digit.
Показать подсказку
Используйте ^ перед идентификатором: и убедитесь, что флаг m активен.
Решение доступно после 3 попыток