Как найти в тексте все числа из четырех цифр или все email-адреса? Рассказываем о регулярных выражениях — мощном инструменте для анализа и редактирования текстов, который используется программистами, специалистами в NLP и Digital Humanities, а также биоинформатиками. Регулярные выражения — это классика компьютерных методов обработки текстовых данных, они используются гораздо дольше, чем все новомодные методы, связанные с машинным обучением и нейросетями. Но до сих пор многие задачи проще и лучше всего решаются именно регулярками!
⚠️ Этот текст — максимально краткое введение в регулярные выражения. Если вы хотите разобраться подробнее, у «Системного Блока» есть большой гайд по регулярным выражениям в трёх частях: раз, два, три.
Регулярные выражения (Regular Expression или Regex) — это инструмент для работы с текстом, который позволяет искать и изменять подстроки в тексте, соответствующие заданному шаблону.
К примеру, представим большой текстовый файл с данными о студентах: именами, фамилиями и адресами электронной почты. В этом файле необходимо найти все адреса, чтобы составить рассылку. У адресов электронной почты общая структура: они состоят из двух строк, разделённых символом «@», поэтому можно задать регулярное выражение, которое описывает эту структуру, и затем использовать его для поиска всех адресов.
Регулярные выражения состоят из символов, которые представляют определённые шаблоны и правила поиска. Вот некоторые из наиболее часто используемых:
Приведём пример регулярного выражения, которое решает задачу поиска адресов электронной почты. Электронный адрес состоит из имени пользователя и доменного имени (gmail.com, mail.ru и так далее), эти две части разделены символом «@». Зададим регулярное выражение, которое решает эту задачу (для простоты примера предположим, что все домены находятся либо в ru, либо в com):
(.+)@(.+)\.(com|ru)
Это регулярное выражение содержит три группы:
«\» перед точкой позволяет различать метасимволы, границы группы и квантификаторы от обычных символов. Так «.» — это метасимвол, а «\.» обозначает просто точку.
Отметим, что на самом деле адреса электронных почт определяются большим количеством правил: так, например, имя пользователя не может содержать некоторые символы.
Регулярные выражения используются для анализа текстов в NLP и Digital Humanities, в биоинформатике для поисков паттернов в геномах. Также программисты пользуются ими для быстрого редактирования текста кода и для валидации входных данных пользователя: проверки правильности введенной электронной почты, даты и других данных, которые должны следовать определённому шаблону.
Компания Google представила много новых ИИ-продуктов, а модель GPT опровергла известную математическую гипотезу Пала Эрдёша — рассказываем, что произошло в мире ИИ за последнее время
Facebook* и Instagram* будут сканировать фото и видео, чтобы находить детей, которые скрыли свой возраст
Можно ли заниматься NLP, если при словах «производная» и «матрица» хочется закрыть ноутбук? Да — если изучать математику не абстрактно, а через реальные задачи. Объясняем, какие разделы действительно нужны джуну,…