Регулярные выражения I — основы

d{3}.?d{3}.?d{3}-?d{2}

Нет, у вашего браузера нет проблем с кодировкой, и моя кошка тоже не легла на мою клавиатуру. Эта куча символов, которые, кажется, беспорядочно разбросаны вокруг, является примером регулярного выражения.
Регулярные выражения, которые с этого момента будут называться регексами (единственное число, regex) — это наборы символов, которые описывают шаблон, по которому будет производиться поиск в тексте. Пример сделает это более понятным.

Рассмотрим следующий текст:

История всего общества до этого момента — это история классовой борьбы.

Если вы хотите извлечь слово classes из этого текста, вы можете использовать следующий regex.

classes

Хорошо, это не очень полезно, но регексы могут делать больше. Возьмем следующий пример:

Австро-прусская война 1866 года. Проблема этой войны обсуждалась на заседаниях Генерального совета Рабочего Интернационала, состоявшихся 19 и 26 июня и 17 июля 1866 года. [Примечание МВД].

Если вы хотите извлечь все числа из этого текста, вы можете использовать следующий regex.

d+

Описывать происходящее:

Таким образом, можно найти любую группу цифр. В случае с предыдущим текстом будет найдена следующая информация:

  • 1866
  • 19
  • 26
  • 17
  • 1866

На этом втором примере мы можем лучше понять, для чего нужны регексы. Теперь, когда мы это прошли, давайте начнем с самого начала.

Начало

В этой первой статье мы поговорим о литеральных символах, специальных символах и квантификаторах.

Буквальные символы

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

Специальные символы

Специальные символы — это символы, которые имеют какое-то особое применение, например, для обозначения повторов, необязательных символов или других вещей.
Первый специальный символ, который мы рассмотрим, — это символ , обычно называемый обратной косой чертой. Этот символ заставляет следующий символ стать специальным, если он литеральный, и буквальным, если он специальный. Давайте рассмотрим несколько примеров:

Другими специальными символами являются ., который представляет любой символ (кроме перевода строки), ?, который говорит, что предыдущий символ является необязательным, и другие. Более полный список наиболее распространенных специальных символов в регекс-движках можно найти здесь.

Квантификаторы

Квантификаторы полезны для того, чтобы избежать повторений в regex. Например:

Существует несколько типов квантификаторов. К ним относятся:

  • {a,} означает, что предыдущий символ может повторяться один или более раз
  • {,a} означает, что предыдущий символ может повторяться от 0 до a раз
  • {a,b} означает, что предыдущий символ может повторяться от a до b раз

Регекс с самого начала

Теперь вы должны понимать, что такое начальный regex.

d{3}.?d{3}.?d{3}-?d{2}

Этот регекс идентифицирует числа с тем же форматом, что и CPF в тексте (валидация в этом случае не выполняется).

Заключение

Регулярные выражения — очень полезный инструмент для обработки текста, как для проверки, так и для поиска информации. Несмотря на то, что рекомендуется соблюдать осторожность в его использовании, поскольку обработка регулярных выражений может быть довольно сложной, в вычислительном смысле этого слова, из-за стратегии, называемой обратным ходом, о которой мы поговорим в одной из следующих частей, regex является одним из фундаментальных инструментов в арсенале профессионала в области технологий.

Увидимся в следующей части.

Оцените статью
devanswers.ru
Добавить комментарий