Рубрики
Без рубрики

Прочь и за его пределами с регулярными выражениями

Основы регулярных выражений. Синтаксис и структура Regex

Автор оригинала: Iheanyichukwu Kelechi.

Представьте, что вы создаете форму, и вы хотите подтвердить данные, проходящие через форму. Вы хотите проверить, что адрес электронной почты и номер телефона имеет определенный шаблон. Как вы поймите эти шаблоны? Вы используете регулярные выражения (Regex). Давайте узнаем основы Regex.

Одно замечательная вещь о Regex состоит в том, что узоры и принципы – языковые агностики. Принципы не относятся к языку. Следовательно, хорошее знание принципов Regeex будет иметь огромную помощь разработчику JavaScript или разработчику Java или разработчику Python. Тем не менее, существуют некоторые языковые идентификаторы регулярных выражений. Для целей этого учебника мы сначала рассмотрим Regex без упоминания о любом языке программирования. Тогда мы увидим, как использовать JavaScript для проверки регулярных выражений в строке.

Формат регулярных выражений

Шаблон регулярных выражений может быть идентифицирован с использованием двух форвардных скорей. Между форвардными скольжениями является рисунок Regex, мы желаем ловить/поймать. После того, как форвардные скольжения могут быть найдены модификаторы. Формат для регулярных выражений показан ниже.

/pattern/modifiers

Показано ниже рисунок Regex.

/re/i

Как видно в приведенном выше примере, Regeex имеет узор, содержащийся (RE) между двумя форвардными скользями. Существует модификатор, который можно найти после второй передней косы. Найдите ниже примеры по тестированию регулярных выражений, используя простые шаблоны.

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

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

Тест на характер

Чтобы проверить на символ, мы помещаем символ между двумя форвардными скользями, как показано ниже

Тестирование на характер

Тестирование на один из наборов символов

Чтобы проверить один из наборов символов, используйте из оператора или оператора, который является одним ударом (|), как показано ниже.

Тестирование на один из наборов символов

Как можно ясно можно увидеть выше, предпринимается попытка соответствовать символам «D», «C» или «M». Персонаж «C» содержится в тексте, поэтому успешный матч.

Тестирование на один из наборов символов можно сделать с помощью Квадратные скобки Оператор []. Это показано ниже.

Тестирование на один из наборов символов с использованием квадратных скобок

Тестирование на один из наборов символов можно сделать с использованием A Диапазон персонажей Отказ Это более масштабируемо, чем использование или оператор или просто перечисление символов внутри квадратных скобок. Это связано с тем, что в диапазоне содержатся больше символов. Найдите ниже пример.

Тестирование на один из наборов символов с использованием диапазона

Представьте, что мы желаем сопоставить персонажа «C» в верхнем регистре. Попытка сделать это потерпеть неудачу. Как мы обращаемся к этому сценарию? Мы используем модификаторы, и это обрабатывается рядом.

Модификаторы

Как подразумевает имя, модификаторы являются параметрами, используемыми для FINETUNE нашего совпадения или поиска. Некоторые примеры модификаторов являются нечувствительными к регистру модификатором, обозначаемым I, глобальный модификатор, обозначенный G и многоуровневым модификатором, обозначенный M.

Модификатор нечувствительности к регистру, я

Этот модификатор гарантирует, что корпус символа или наборов символов упускается во время поиска. Этот модификатор позволяет строить символ «F», чтобы соответствовать символу прописных букв. Пример показан ниже.

Модификатор нечувствительности

Глобальный модификатор, г

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

Глобальный модификатор

Все время мы предпринимаем хорошую попытку сопоставить один символ. В случае, если мы хотим сопоставить слова или полные тексты, мы используем кванты.

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

Quebifiers показывают количество раз, мы ожидаем увидеть характер или позицию, которую они должны произойти. Коливенки включают, но не ограничиваются ограничены оператором Plus (+), оператора фигурных скобок ({{}), оператор вопросительного знака (?), Оператор CARET (^) и оператор доллара ($).

Плюс оператор +

Этот оператор обозначает, что в тексте один или несколько символов существует. Найдите под хорошим примером.

Regex Plus Оператор

Из приведенного выше примера все символы алфавита соответствуют соответствующим образом из-за наличия оператора плюс, потому что текст содержит хотя бы один символ алфавита.

Оператор фигурных скобок {}

Этот квантификатор показывает номер или диапазон чисел символа, совпадают в тексте. Мы могли бы желать сопоставить только 5 символов алфавита. Ниже показано приведен пример.

Оператор фигурных брекетов

Вопросительный знак оператора,?

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

Вопросительный знак Оператор

Оператор CARET (^)

Оператор CARET соответствует любому тексту с персонажем в начале этого. Это гарантирует, что никакие другие не совпадающие символы не находятся в начале текста, как показано ниже.

Оператор Caret

Из указанного выше примера есть номер в начале текста, при этом шаблон не соответствует тексту. Удаление номера (5) в начале текста производит другой результат, который соответствует, как показано ниже.

Оператор Caret ^

Поразительная вещь о операторе CARET заключается в том, что он может обозначать отрицание при размещении внутри квадратных скобок []. Когда это сделано, шаблон соответствует каждому другому персонажу, кроме указанного в символьном наборе в квадратных скобках, как показано ниже.

Оператор Caret для отрицания

Как можно увидеть выше, шаблон соответствует любому символу, который не является алфавитом, а не подчеркиванием (_).

Оператор знак доллара $

Оператор знака доллара соответствует любому тексту с персонажем в конце этого. Это гарантирует, что никакие другие не совпадающие символы не находятся в конце текста, как показано ниже.

Долларный знак оператора

Из указанного выше примера есть номер в конце текста, таким образом, шаблон не соответствует тексту. Удаление номера (4) в конце текста производит другой результат, который соответствует, как показано ниже.

Знак знака доллара

Со временем наблюдается, что длина шаблона растрается неловко. Более того, мы могли бы желать изобразить специальные символы, такие как полная остановка, запятая, пробелы и т. Д. Для того, чтобы добиться этого, мы используем Escape Science и MetAscatcher.

Метасимволы и эвакуатор

* Уважение персонажа * Символ эвакуации – это задняя слешь. Он используется для добавления специальных символов, таких как полная остановка к узору. Это показано ниже.

Бегущий характер

Метахирамводы

Это символы, которые имеют особое значение и используются для представления конкретных шаблонов. Некоторые метасимволы включают \ w, \ d, \ w, \ d, \ s, \ s. Быстрое объяснение некоторых из этих метасимволов показано ниже.

\ W . Это соответствует символу слов, которое включает в себя буквенно-цифровые символы и подчеркивание (_). Эквивалент этого метачаруса показан ниже:

/\w/i is the same as /a-z0-9\_/i

\ W Это отрицает символ слова \ w. Таким образом, \ W Metacharacter Matcher соответствует всем, что не является ни буквенно-цифровым характером, ни подчеркиванием (_). Эквивалент этого метачаруса показан ниже:

/\W/i is the same as /^a-z0-9\_/i

\ D Это соответствует цифру символа, который включает в себя все номера от 0 до 9. Эквивалент этого метачаруса показан ниже:

/\d/i is the same as /[0-9]/i

\ D Это отрицает цифру \ d Metacharacter. Таким образом, \ d Metacharacter соответствует всему, что не является цифрой. Эквивалент этого метачаруса показан ниже:

/\D/i is the same as /^0-9/i

\ S Это соответствует любым пробелам.

\ S Это отрицает персонаж пробелов. Таким образом, Metacharacter Macharacter соответствует всем, что не является пробелом. Эквивалент этого метачаруса показан ниже:

/\S/i is the same as /^\s/i

Тест регулярных выражений с JavaScript

К способу практики мы желаем подтвердить данные адреса электронной почты, исходящей из формы. Ожидается, что адрес электронной почты должен содержать набор символов до и после того, как символ (@), за которым следует оператор DOT (.) Что сопровождается некоторыми символами. Ниже показано является регулярным выражением выражения, которая соответствует строке адреса электронной почты.

/^[a-z0-9\._+-]+@[a-z0-9\._+-]+\.[a-z]+$/i

Первая часть Regex – это [A-Z0-9 ._ + -] +, которая соответствует любому буквенно-цифровому символу и символы, такие как Отказ _ + -

Вторая часть Regeex – символ @, который соответствует одному символу @.

Третья часть Regex – это [A-Z0-9 ._ + -] +, которая соответствует любому буквенно-цифровому символу и символы, такие как Отказ _ + -

Четвертая часть регеляции. который соответствует полной остановке.

Пятая часть рисунка Regex – это [A-Z] +, которая соответствует всем буквам алфавита

Достойная записка – оператор CARET (^), который гарантирует, что только персонажи, которые соответствуют шаблону Regex, запускают текст, оператор знака доллара ($), который гарантирует, что только персонажи, соответствующие рисунку REGEX, который заканчивают текстом и модификатор нечувствителен для регистра, который Соответствует тексту независимо от случая символов.

Очистительное представление вышеуказанного регулярного узора экспрессии с использованием метасимволов приведена ниже:

/^[\w\._+-]+@[\w\._+-]+\.[a-z]+$/i

В JavaScript, Тест () Метод может быть использован для проверки шаблона регулярных выражений. Ниже показан метод, который проверяет адрес электронной почты

const text = '';

function checkEmail(emailAddress) {

const pattern = /^[a-z0-9\._+-]+@[a-z0-9\._+-]+\.[a-z]+$/i;

return pattern.test(emailAddress);

};

checkEmail('usman.amos@gmail.com'); // Returns true

checkEmail('usman@gmail.com'); // Returns true

checkEmail('?@gmail.com'); // Returns false

checkEmail('usman.amosgmail.com'); // Returns false

checkEmail('usman.amos@gmail.'); // Returns false

Заключение

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

Ресурсы

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

https://regexr.com/ – онлайн-платформа для изучения и практики регулярных выражений

https://www.w3schools.com/jsref/jsref_obj_regexp.asp – Быстрая руководство по изучению оснований регулярных выражений