Регулярные выражения: базовое знакомство для новичков

Хочешь уверенно проходить IT-интервью?

Готовься к IT-собеседованиям уверенно с AI-тренажёром T1!

Мы понимаем, как сложно подготовиться: стресс, алгоритмы, вопросы, от которых голова идёт кругом. Но с AI тренажёром всё гораздо проще.

💡 Почему Т1 тренажёр — это мастхэв?

  • Получишь настоящую обратную связь: где затык, что подтянуть и как стать лучше
  • Научишься не только решать задачи, но и объяснять своё решение так, чтобы интервьюер сказал: "Вау!".
  • Освоишь все этапы собеседования, от вопросов по алгоритмам до диалога о твоих целях.

Зачем листать миллион туториалов? Просто зайди в Т1 тренажёр, потренируйся и уверенно удиви интервьюеров. Мы не обещаем лёгкой прогулки, но обещаем, что будешь готов!

Реклама. ООО «Смарт Гико», ИНН 7743264341. Erid 2VtzqwP8vqy


Знакомьтесь, регулярные выражения! Из статьи вы почерпнёте основные идеи, распространённые шаблоны и функции с примерами.

Регулярные выражения: базовое знакомство для новичков

Регулярные выражения – мощный инструмент таких языков, как Python, R, Java, JavaScript, PHP, Scala и не только.

Уверенное понимание регулярок поможет разработчику производить операции с данными и текстом. Например, в обработке естественного языка.

Регулярные выражения: базовое знакомство для новичков

Не бойтесь этих кракозябр: регулярные выражения принесут вам пользу, как только вы начнёте понимать и применять их.

Что такое регулярные выражения?

Регулярное выражение – это текстовая строка, которая определяет шаблон поиска:

"\w+"

Подобные шаблоны используются для четырёх главных задач:

  • Найти текст в большом объёме текстовых данных.
  • Проверить строку на совпадения с желаемым форматом.
  • Заменить и вставить текст.
  • Разделить строки.

Посмотрим на основные шаблоны регулярок.

Основные шаблоны

Вернёмся к примеру:

\w+

Здесь «w» означает слово (от англ. word). «+» означает «ещё одно». Эта регулярка сравнивает символы слов, включая ASCII, цифры и нижнее подчеркивание. Предположим, что нам нужно сравнить первое слово в строке. Сначала импортируем модуль re:

import re

Затем мы определяем шаблон и юзаем функцию re.match() для определения первого слова:

word_regex = '\w+'
re.match(word_regex, 'hello world!') # это будет сопоставляться с первым словом в поиске
>>><re.Match object; span=(0, 2), match='hi'>

Вот основные символы, которыми вы будете оперировать:

Регулярные выражения: базовое знакомство для новичков

Некоторые распространённые шаблоны:

Регулярные выражения: базовое знакомство для новичков

Что с этим делать? Всё просто! Например, вы можете использовать такие паттерны для проверки вводимых значений в input-поля:

  • Full name – ^[A-Z]{1}[A-Za-z 0-9-]{1,12}$
  • email – [\w-]+@([\w-]+\.)+[\w-]+
  • Телефон (с буквами, как принято во многих странах) – ^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*[a-z]*$

Теперь у вас есть немного готовых регулярных выражений. Время двигаться к важным функциям.

Функция match()

Эта функция сопоставляет шаблон со строкой. Она возвращает объект match при успехе и None – в случае неудачи:

re.match('\w+', 'hello world!')
>>><re.Match object; span=(0, 5), match='hello'>

Функция findall()

Возвращает список всех экземпляров шаблона в строке. Совпадения возвращаются в порядке слева направо:

re.findall('[A-Z]\w+', 'hello World!')
>>>['World']

Функция search()

Функция search() ищет экземпляры шаблона в строке. Она возвращает объект match при успехе, None – при неудаче. Похожа на функцию match(), но ищет по всей строке:

re.search('ef', 'abcdef')
>>><re.Match object; span=(4, 6), match='ef'>

Функция split()

Разделяет строку по местонахождению шаблона:

re.split('\s+', 'hello world this is andre')
>>>['hello', 'world', 'this', 'is', 'andre']

Некоторые мысли

Регулярные выражения: базовое знакомство для новичков

Несмотря на свою пользу, регулярные выражения – это инструмент, которым легко злоупотребить.

На заметку:

  • Начинайте с малого. Используйте регулярные выражения ответственно. Разделите их на более мелкие, если нужно. Вам ни к чему одна огромная регулярка в несколько строк: это существенно снизит читаемость кода.
  • Комментируйте регулярки! Никто не хочет тратить время на вашего монстра из 20 строчек, пытаясь понять, что это значит.

Заключение

Регулярные выражения – инструмент, который требует практики. В интернете вы найдёте много ресурсов по регулярным выражениям. Например, официальная документация языка Python.

Делитесь своими регулярками в комментариях!

Комментарии

ВАКАНСИИ

Добавить вакансию
Hotel Search Team Lead (Golang)
по итогам собеседования
Golang-разработчик
Пермь, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ