Модульні уроки (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.
Показати підказку
Використовуйте ^ перед ID: і переконайтеся, що прапорець m активний.
Рішення доступне після 3 спроб