Перейти к содержимому

Квантификаторы и символы новой строки в регулярных выражениях JavaScript

В этом руководстве мы рассмотрим мощные квантификаторы, которые помогают контролировать, сколько раз шаблон должен встречаться при поиске в тексте. Давайте погрузимся и раскроем потенциал квантификаторов регулярных выражений, чтобы сделать ваш код более эффективным и результативным!

Понимание квантификаторов в регулярных выражениях JavaScript

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

  • * (звёздочка): Совпадает с 0 или более повторениями предыдущего элемента.
  • + (плюс): Совпадает с 1 или более повторениями предыдущего элемента.
  • ? (знак вопроса): Совпадает с 0 или 1 повторением предыдущего элемента.
  • {n}: Совпадает ровно с n вхождениями предыдущего элемента.
  • {n,}: Совпадает как минимум с n вхождениями предыдущего элемента.
  • {n,m}: Совпадает с количеством вхождений от n до m предыдущего элемента включительно.

Практический пример: Использование квантификатора *


Output appears here after Run.

В этом примере /A*/i совпадает с нулём или более вхождениями символа 'A' (без учёта регистра), захватывая последовательность "Aaaaaa" в начале строки. Звёздочка позволяет найти совпадение, даже если 'A' отсутствует.

Практический пример: Использование квантификатора +


Output appears here after Run.

Выражение \d+ находит одну или более цифр в тексте. Результат включает 123 и 456 как отдельные совпадения, демонстрируя полезность + для захвата полных чисел.

Практический пример: Использование квантификатора ?


Output appears here after Run.

Шаблон регулярного выражения /colou?r/g совпадает как с "color", так и с "colour". Квантификатор ? делает предыдущий символ 'u' необязательным, позволяя шаблону находить слово независимо от наличия 'u'. Флаг g гарантирует поиск всех вхождений в тексте.

Практический пример: Использование квантификатора {n}


Output appears here after Run.

\b\d{4}\b совпадает с последовательностью ровно из четырёх цифр, распознавая 2022 и 1999 как годы.

INFO

Всегда учитывайте эффективность ваших регулярных выражений. Неоптимальные шаблоны могут привести к снижению производительности, особенно при работе с большими объёмами данных. Оптимизируйте регулярные выражения, избегая лишних квантификаторов и используя нежадные квантификаторы там, где это уместно.

Практический пример: Использование квантификатора {n,}


Output appears here after Run.

Шаблон \b[a-zA-Z]{5,}\b совпадает со словами, состоящими как минимум из пяти букв. В результате будут найдены fantastic и incredible.

Практический пример: Использование квантификатора {n,m}


Output appears here after Run.

Шаблон регулярного выражения \b[a-zA-Z]{3,6}\b предназначен для поиска слов, содержащих от 3 до 6 букв, ограниченных границами слова, чтобы гарантировать совпадение только с полными словами. Регулярное выражение находит "See", "the", "big", "tiny", "ant", "and", "old" и "tree". Оно не находит "elephant", так как это слово превышает 6 букв.

Практический пример: Использование символа \n


Output appears here after Run.

Последовательность \n обозначает символ новой строки. В регулярном выражении он совпадает с фактическим переносом строки в тексте. Шаблон /line\n/g находит слово "line", сразу за которым следует перенос строки, захватывая оба вхождения в примере.

Заключение

Понимание и эффективное использование квантификаторов и символа \n в JavaScript могут значительно расширить ваши возможности по обработке текста в веб-разработке. Эти инструменты обеспечивают мощное сопоставление шаблонов и извлечение данных, делая ваш JavaScript-код более эффективным, а приложения — более динамичными и отзывчивыми.

Практика

Что делает квантификатор '+' в регулярном выражении JavaScript?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.