Уроки модуля (2/4)
Базовые классы: \d \w \s
Помимо буквальных символов, регулярное выражение предоставляет вам предопределенные классы: ярлыки для «любой цифры», «любого символа слова», «любого пробела». Они первые шаг к действительно полезным шаблонам.
| Класс | Матчи |
|---|---|
\d | цифра (0–9) |
\w | Слово (A-Za-z0-9_) |
\s | Пробел (пробел, табуляция, новая строка и т. д.) |
\D | НЕ цифра |
\W | НЕ словесный символ |
\S | НЕ пробел |
Каждый из них соответствует отдельному символу. Чтобы соответствовать «одному или нескольким символам»
нужны кванторы (+, в модуле 2), но мы сразу воспользуемся +
потому что «найди мне все числа» слишком полезно, чтобы ждать.
Pattern: \d+
Sample: Ho 3 mele, 12 pere e 100 prugne.
^ ^^ ^^^\d+ означает одну или несколько последовательных цифр: оно соответствует 3, 12 и
100 как три отдельных совпадения (с флагом g).
\w: символы слов
\w эквивалентен [A-Za-z0-9_] (буквы ASCII, цифры, подчеркивание). Это
НЕ включает диакритические знаки, греческие буквы и эмодзи: для них нужен Юникод.
экранирование свойств (\p{L}, модуль 5).
Глубокое погружение в основные классы и отрицания.
Предопределенные классы \\d, \\w, \\s ускоряют кодирование. Версии в верхнем регистре (\\D, \\W, \\S) отменяют набор. Например, \\S+ захватывает любой блок текста без пробелов (например, целые слова, включая знаки препинания).
Механизм обрабатывает \\s, сопоставляя не только стандартный пробел, но также символы табуляции (\\t) и символы новой строки (\\n или \\r).
Попробуйте это
Извлеките из текста каждую последовательность последовательных цифр (цифр). Используйте класс `\\d` с квантором `+`.
Показать подсказку
\\d+ захватывает одну или несколько цифр. С флагом g вы собираете все совпадения.
Решение доступно после 3 попыток
Обзор упражнения
Найдите каждое «слово» в тексте: непрерывную последовательность словесных символов (`\\w+`).
Показать подсказку
\\w+ соответствует последовательности букв/цифр/подчеркивания. Пунктуация пропускается.
Решение доступно после 3 попыток
Дополнительная задача
Find all sequences of one or more consecutive whitespace characters in the text (including spaces, tabs, and newlines).
Показать подсказку
Используйте класс \\s с квантором + для захвата последовательных последовательностей пробелов.
Решение доступно после 3 попыток