Гайды

Регулярные выражения. Часть 3

Экранирование символов, волшебная точка и поиск всего чего угодно. Продолжение серии уроков по регулярным выражениям

Прошлые уроки

Не помните, что такое регулярное выражение и как выделить все числа в тексте «33 богатыря, 1001 ночь»? Повторите
Часть 1. Что такое регулярные выражения? Классы символов.

Не помните, как найти все заглавные буквы в слове ПрИвЕтиКи? Повторите
Часть 2. Наборы и диапазоны. Отрицания

Классы и наборы: повторение

Классы символов мы задавали следующим образом:

\d — 1 р.

\D — 1 р.

Наборы и диапазоны — так:

[123] — 40 мертвецов и 1 бутылка рома

[А-Я] — ПрИвЕтиКи

Отрицание набора символов

Наборы символов, как и классы, можно отрицать. Для этого сразу после первой квадратной скобки нужно поставить знак карет ^:

[^А-Я] — найдёт всё, кроме заглавных букв кириллицы: «кАПС»

[^ауоыиэяюёе] — найдёт всё, кроме строчных гласных: «велосипедист»

Ищем любой символ

Как быть, если мы хотим найти вообще любой символ? В регулярных выражениях для этого есть особый знак — точка. Точка находит любой символ за исключением переноса строки. Например:

.+ найдёт «▥Flบffy$heeⓟⁿ»

Такие символы, которые обозначают не себя, а что-то другое, называются метасимволами. 

Ищем точку

Хорошо, а как найти саму точку, если нужна только она? Для этого перед точкой нужно поставить \.

\. будет соответствовать именно точка. 

\. Найдет 3.14

Такой прием называется экранированием. Экранировать можно любой метасимвол. Например, + — как вы помните, это тоже особый символ (он обозначает, что предыдущий символ повторяется от 1 до бесконечности раз).

1+ найдет 1111111

1\+ найдет 1+

Сам \ тоже можно экранировать — ведь это тоже метасимвол. 

\\ найдет \

Таблица символов — здесь можно посмотреть все метасимволы

Упражнение урока

Как найти предложение, в начало которого затесался странный символ?

Личный попугай капитана Флинта изучил 1561 ругательств на разных языках. 271 ругательство на английском, 352 на французском и 127 на испанском. &остальные попугай почерпнул из могучего русского языка.

\. . найдёт все случаи, когда после точки в конце предложения есть пробел и любой другой символ.

. \W точка не экранирована и найдёт любые символы. Кроме того, \W означает «не цифра и не латинская буква», то есть выражение дополнительно найдёт буквы кириллицы.

\. [^А-я0-9] верный вариант. Найдёт все случаи, когда после точки с пробелом стоит не буква и не цифра. Можно улучшить: \. [^А-Я0-9] Тогда выражение найдёт ещё и случаи, когда в начале предложения стоит строчная буква.

\. ^[А-я0-9] некорректное выражение. Для отрицания диапазона знак карет ^ должен стоять внутри скобок.

Share

Recent Posts

GPT решила знаменитую нерешенную задачу математики, Google показал новый ИИ-поиск

Компания Google представила много новых ИИ-продуктов, а модель GPT опровергла известную математическую гипотезу Пала Эрдёша — рассказываем, что произошло в мире ИИ за последнее время

25.05.2026

ИИ найдет «скрытых» детей в соцсетях по костям лица

Facebook* и Instagram* будут сканировать фото и видео, чтобы находить детей, которые скрыли свой возраст

19.05.2026

Какая математика нужна джуну в NLP?

Можно ли заниматься NLP, если при словах «производная» и «матрица» хочется закрыть ноутбук? Да — если изучать математику не абстрактно, а через реальные задачи. Объясняем, какие разделы действительно нужны джуну,…

19.05.2026