В этом блоге давайте изучим некоторые основы регулярных выражений Javascript на примере.

Регулярные выражения в JavaScript

Регулярное выражение или RegEx - это шаблон, используемый для сопоставления комбинаций символов в строке. В JavaScript регулярные выражения также являются объектами.

Давайте начнем с нескольких основных примеров, а затем более подробно объясним синтаксис, необходимый для построения и понимания регулярных выражений.

Давайте создадим объект RegExp, re, который соответствует любой строке S, которая начинается и заканчивается той же гласной.

Строка S,
Длина строки S составляет ›= 3.
Строка S состоит только из строчных букв (т.е. [a-z]).

В этом примере мы будем использовать Node JS, язык Javascript на стороне сервера.

Node JS - это кроссплатформенная библиотека и среда выполнения, которая используется для создания запущенных приложений JavaScript вне браузера.

А Angular J S - это каркас веб-приложений для создания интерфейсных веб-приложений на основе сценария Java.

Node JS - это язык на стороне сервера для создания сред выполнения приложений на основе Javascript.

Я буду использовать следующий код RegEx.js, размещенный в моем репозитории Github.

Чтобы выполнить приведенный выше сценарий NodeJS, нам нужно создать входной файл, который может быть предоставлен в качестве стандартного ввода для чтения строковых значений для проверки регулярного выражения.

Я буду использовать следующий файл RegExInput.txt в качестве входного файла, который содержит строки, которые необходимо сравнить с регулярным выражением.

Теперь давайте запустим сценарий для указанного выше входного файла, используя следующую команду:

node RegEx.js < RegExInput.txt

Результат будет выглядеть так, как показано ниже,

Поскольку первая входная строка не начинается и не заканчивается одной и той же гласной, она возвращается как ложь, остальные строки удовлетворяют условию, возвращаемому таким образом, как истинное.

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

Используется регулярное выражение,

/^([aeiou])\w*\1$/ig

Используется литерал регулярного выражения,

/^([aeiou])\w*\1$/

Литерал регулярного выражения - это шаблон RegEx, заключенный в косую черту.

Используется шаблон регулярного выражения,

^([aeiou])\w*\1$

Начнем с изучения закономерности,

^ → Соответствует началу ввода. Если для многострочного флага установлено значение true, также соответствует сразу после символа разрыва строки.

[aeiou] → Набор символов [aeiou] будет соответствовать любому одному символу из набора {a, e, i, o, u}.

Шаблоны ^ и [aeiou] обеспечивают соответствие нашего регулярного выражения строкам, начинающимся с любого из символов гласной.

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

Чтобы зафиксировать совпадение и запомнить захваченное совпадение, мы будем использовать JavaScript «Группы захвата».

Группы захвата определяются путем указания совпадающих символов в круглых скобках.

([aeiou]) → Круглые скобки, заключающие квадратную скобку (набор символов), - это запись, которую нужно зафиксировать и запомнить первую совпавшую гласную.

\ w * → Эта часть шаблона регулярного выражения соответствует нулю или более буквенно-цифровому слову, включая символ подчеркивания (т. е. [A-Za-z0–9_]).

Строка может содержать ноль или более буквенно-цифровых символов, за которыми следует первый символ гласной.

Обратитесь к ссылке для получения дополнительной информации о группах захвата Javascript.

Чтобы сослаться на зафиксированное совпадение, мы будем использовать «Обратные ссылки» JavaScript.

Теперь, когда мы прошли строку и достигли ее конца, нам нужно сопоставить последний символ строки и проверить следующие условия:

Для ссылки на первое зафиксированное совпадение мы будем использовать «Обратную ссылку» со следующими обозначениями.

\ 1 $ → Эта часть шаблона регулярного выражения ссылается на символ, запомненный первой совпавшей группой захвата.

Последний символ строки будет сопоставлен только в том случае, если он совпадает с первым зафиксированным совпадением.

Обратитесь к ссылке для получения дополнительной информации о обратных ссылках на Javascript.

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

Литерал регулярного выражения в сочетании с флагами дает нам полное регулярное выражение.

ig → Эта часть регулярного выражения обозначает флаги.

i: игнорировать регистр
g: глобальное соответствие

Теперь, когда мы построили все регулярное выражение (/ ^ ([aeiou]) \ w * \ 1 $ / ig), мы можем использовать его с методом регулярного выражения .

Доступны два метода регулярных выражений, как показано ниже:

  • test (): этот метод выполняет поиск совпадения между регулярным выражением и указанной строкой. Возвращает истину или ложь.
  • executes (): этот метод выполняет поиск совпадения в указанной строке. Возвращает массив результатов или ноль.

В нашем примере нам нужно проверить, удовлетворяет ли данная строка регулярному выражению, поэтому мы использовали метод test ().

Использованная литература:

[1] https://javascript.info/regexp-groups
[2] https://javascript.info/regexp-backreferences

Спасибо за чтение. Ваше здоровье!!!

Первоначально опубликовано на https://serantechexplore.wixsite.com 21 июня 2020 г.