При работе с реальными данными, такими как лог-файлы или даже пользовательский ввод, трудно не столкнуться с пробельными символами. Мы используем их в форматировании фрагментов информации, чтобы эти фрагменты было проще читать и визуально сканировать, но один лишь пробел может полностью сломать простейшее регулярное выражение.
Наиболее распространенными пробельными символами являются обычные пробелы (
), табуляция (\t
), новая строка (\n
) и возврат каретки (\r
). Кроме того, метасимвол пробельных символов \s
будет соответствовать любому из вышеуказанных пробельных символов, являясь, таким образом, очень полезным при работе с необработанными данными.
В следующем упражнении вы обнаружите, что содержимое каждой строки имеет определенный отступ от нумерации этой строки (нумерация также является частью текста, которую нужно сопоставить). Попробуйте написать шаблон, который будет соответствовать каждой строке, содержащей пробельные символы между нумерацией этой строки и её содержимым. Обратите внимание, пробельные символы являются обычными символами, с которыми можно использовать такие метасимволы, как *
и +
.
Задание | Текст | |
Соответстовать | 1. abc | ![]() |
Соответстовать | 2. abc | ![]() |
Соответстовать | 3. abc | ![]() |
Пропустить | 4.abc | ![]() |
Решение | Мы должны сопоставлять только те строки, которые имеют пробельные символы между номером строки и abc . Мы можем это сделать, используя выражение \d\.\s+abc для соответствия числу, точке, одному или нескольким пробельным символам, и тексту.
Если бы мы использовали метасимвол |