Перейти к основному содержимому
Модуль 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 попыток