Основы регулярных выражений
Регулярные выражения - это способ поиска совпадений шаблона с текстом для дальнейших манипуляций. Наверняка многие из вас уже составляли простейшие регулярные выражения для поиска файлов на компьютере. Например, чтобы найти все PDF файлы, нужно в поисковую строку ввести комбинацию «*.pdf» и компьютер отсортирует все папки с файлами данного формата. Вместо «*» подставится любая комбинация символов, имеющая расширение«.pdf» - вот так это работает.
Проверка регулярных выражений
Регулярные выражения широко используются в программировании для парсинга каких-то текстовых данных. Создается некий шаблон, состоящий из комбинации символов и спецсимволов. На сайте regex101.com, можно наглядно увидеть, как работает этот поиск на примере простейших шаблонов. Мы будем создавать шаблоны и смотреть, как этот поиск работает.
Поиск по символам
Найдем все слова в тексте, содержащие символ «a». Регулярное выражение «a» нашло все совпадения.
Ограничим наш поиск и введем регулярное выражение с двумя символами «an» - количество совпадений сразу уменьшилось.
Но вся мощь регулярных выражений проявляется в использовании спецсимволов.
Любой одиночный символ «.»
Найти все совпадения соответствующие букве «p.» и любому другому символу. Под любым символом подразумеваются вообще любые символы (буквы, точки, кавычки, пробелы). Надо иметь ввиду, что регулярные выражения чувствительны к регистру.
Любой из них или в заданном диапазоне «[..]»
Следующее регулярное выражение «[Pt]» найдет любое слово с указанными буквами.
Внутри квадратных скобках можно указать диапазон «[a-c]». В выборку попала буква «b», поскольку она оказалась в заданном диапазоне. Оба этих выражения «[abc]» и «[a-c]», идентичны.
Начало строки «^»
Для поиска начала строки используется знак «^». Найдем все места, где начинаются строки.
Найдем начало всех строк, начинающихся с буквы «D», с помощью регулярного выражения «^D» Если значок домика поставить внутри квадратных скобок, то получится отрицание. Это регулярное выражение «^[^w]» найдет все строки, которые не начинаются с буквы «W».
Конец строки «$»
Для поиска конца строки используется знак «$». Найдем все места, где заканчиваются строки.
Экранирование «\»
Допустим нам надо найти конец всех строки с точкой на конце. Но как быть, если символ «.» зарезервирован под спецсимвол, который ищет любой одиночный символ? Для этого нужно перед точкой поставить обратный слэш.
Экранированные спецсимволы
\D - найдет все что угодно, кроме цифр
\s - найдет все пробелы
\S - найдет все, кроме пробелов
\w - найдет букву
\W - найдет все, кроме букв
\b - найдет границу слова
\B - найдет не границу
Регулярные выражения нужны для автоматизации рутинных процессов, что сильно упрощает жизнь разных специалистов и экономит их время. Кроме рутины, их используют в подсказках для пользователей насчет паролей во время регистрации на сайтах. Например, вы можете увидеть такое сообщение, что пароль должен содержать хотя бы одну букву, одну цифру и один символ, не являющийся буквой или цифрой. Регулярные выражения поддерживаются всеми современными языками программирования.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.