Перейти до основного вмісту
Модуль 3 · Урок 3 із 411/32 у курсі~10 min
Модульні уроки (3/4)

Прапор `m`: багаторядковий

З прапорцем m (багаторядковий) прив’язки ^ та $ змінюють значення: вони більше не є початком/кінцем усього рядка, а початком/кінцем ** кожен рядок**. Рядок розмежовано \n (або початком/кінцем рядок).

Code
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) у багаторядковому текстовому блоці, замість перегляду лише абсолютного початку та кінця всього рядка.

Спробуйте

вправи#regex.m3.l3.e1
Спроби: 0Завантаження…

Знайдіть усі рядки, які починаються з `ERROR`. Кожен рядок відокремлюється \\n; використовуйте прапорці `g` і `m`.

Завантаження редактора…
Показати підказку

Прапор m робить ^ відповідним також початку внутрішніх рядків, а не лише абсолютного першого символу.

Рішення доступне після 3 спроб

Повторна вправа

вправи#regex.m3.l3.e2
Спроби: 0Завантаження…

Знайдіть усі рядки, які ЗАКІНЧУЮТЬСЯ крапкою. Використовуйте прив’язку `$` з прапорцями `m` і `g`.

Завантаження редактора…
Показати підказку

\\.$ з прапорцями gm відповідає крапці в кінці кожного рядка, а не тільки в кінці зразка.

Рішення доступне після 3 спроб

Додатковий виклик

вправи#regex.m3.l3.e3
Спроби: 0Завантаження…

Find all lines in a multiline log that start exactly with the string `ID:` followed by a digit.

Завантаження редактора…
Показати підказку

Використовуйте ^ перед ID: і переконайтеся, що прапорець m активний.

Рішення доступне після 3 спроб