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

Порожні рядки та обрізка

Давайте поєднаємо прив’язки + прапорець m для двох надзвичайно корисних ідіом: зіставлення порожніх рядків і обрізання пробілів на початку/кінці кожного рядка.

Порожні рядки

Порожній рядок – це позиція, де ^ та $ збігаються: нуль символів між початком і кінцем рядка.

Code
Pattern: ^$
Flag:    gm
Sample:  uno\n\ndue\n\n\ntre

Збіг має нульову ширину: підсвічувач показуватиме маркер між два \n. Щоб також зіставити рядки "порожні, але з пробілами", використовуйте ^\s*$.

Обрізка лінії

Щоб видалити пробіли на початку або в кінці рядка, поєднайте прив’язку + клас \s + квантор:

Code
^\s+    matches whitespace at the start of a line (can then be replaced with the empty string, module 7)
\s+$    matches whitespace at the end of a line

За допомогою прапорців gm ви збираєте всі пробіли на полях кожного рядка.

Виявлення порожніх рядків і пробілів у кінці

Чисто порожній рядок відповідає ^$ (з прапорцем m). Однак багато, очевидно, порожніх рядків містять невидимі пробіли або табуляції. Шаблон ^\\s*$ також перехоплює ці рядки, що значно полегшує очищення даних.

Спробуйте

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

Знайдіть кожен порожній рядок у зразку (нуль символів між двома символами нового рядка). Використовуйте `^$` з прапорцями `gm`.

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

Порожній рядок - це позиція, де ^ і $ збігаються. Прапор m є обов'язковим.

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

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

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

Знайдіть пробіли в кінці кожного рядка (пробіли, що передують новому рядку). Використовуйте `\\s+$` з прапорцями `gm`.

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

\\s+ відповідає одному або декільком пробілам (включаючи табуляцію). За допомогою gm ви прив’язуєтеся до кінця кожного рядка.

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

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

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

Find all lines that start with the `#` character (entire comment lines, ignoring inline comments).

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

Use ^ at the start of the pattern to indicate that the comment character # must start the line.

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