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

Что такое Regex и зачем его использовать

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

Регулярное выражение можно использовать в следующих случаях:

  1. найти конкретную строку
  2. заменить определенную строку
  3. разделить строку в определенном месте
  4. проверить, соответствует ли строка определенному шаблону

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

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

Подтвердить 10-значный номер телефона

Допустим, теперь вы создали форму, и пользователям нужно ввести свой 10-значный номер телефона в формате XXXXXXXXXX (например, 1231231234). Как сделать так, чтобы пользователи всегда вводили правильный день рождения с помощью регулярного выражения? Ну, первый способ, который мы можем сделать, это проверить, вводит ли пользователь 10 цифр. В зависимости от языка программирования, который вы используете, мы можем сначала проверить, все ли введенные символы являются цифрами и равна ли их длина 10. Но мы можем сделать это более элегантным способом, используя регулярное выражение.

\d{10} это может гарантировать, что строка состоит из десяти цифр. Здесь \d представляет цифры, в основном от 0 до 9, а {10} представляет количество шаблона, которому он следует. Так как здесь {10} следует за цифрой\d , а это означает, что шаблон состоит из 10 цифр.

Теперь предположим, что нам нужно, чтобы пользователи ввели следующий формат номера телефона XXX-XXX-XXXX . Мы можем использовать регулярное выражение \d{3}-\d{3}-\d{4} .

Подтвердить адрес электронной почты

Допустим, теперь мы хотим, чтобы пользователи вводили адрес электронной почты. Для простоты предположим, что адрес электронной почты пользователя имеет следующий формат [email protected] (например, [email protected]). Здесь X представляет либо алфавит, либо цифру.

Как это сделать в регулярном выражении?

Ответ [a-zA-Z0-9]+@gmail\.com

Здесь [a-zA-Z0-9] представляет собой букву или цифру от az до z или от 0 до 9. Чтобы уточнить, [a-z] представляет букву от a до z, [A-Z] представляет букву от A до Z, а [0-9] представляет цифру от 0 до 9. Мы можем объединить эти три в [a-zA-Z0-9] .

[a-zA-Z0-9]+ означает, что у него есть один или несколько [a-zA-Z0-9] . Другим примером может быть \d+, представляющий одну или несколько цифр.

Что касается части домена Gmail, нам нужно избежать точки (добавить обратную косую черту). . — это зарезервированный символ в регулярном выражении, и его необходимо экранировать. Другими символами, которые необходимо экранировать, являются \+*?^$|[(){.

Поисковое предложение

Допустим, теперь мы пытаемся найти кого-то из нашей желтой страницы, и мы знаем, что его имя начинается с D, а фамилия начинается с F (например, Дерек Фрэнк).

Как представить это в регулярном выражении?

^D[a-z]+\sF[a-z]+$

Знак моркови ^ означает, что строка должна начинаться со следующего символа, которым является D. А знак доллара $ означает, что строка должна заканчиваться символом, за которым следует символ, который в данном случае является строчным алфавитом. По сути, это гарантирует, что искомая строка начинается с буквы D и заканчивается другой буквой.

\s представляет пробел. Нам это нужно, так как между именем и фамилией есть пробел.

Резюме

Чтобы найти 10-значный номер телефона, мы можем использовать \d{10}. \d представляет собой цифру от 0 до 9, а {10} означает, что таких цифр 10.

Чтобы подтвердить адрес электронной почты Gmail, мы можем использовать [a-zA-Z0-9]+@gmail\.com . [a-zA-Z0-9] представляет собой комбинацию [a-z],[A-Z],[0-9] , что означает, что оно представляет собой букву или цифру от AZ или 0–9. Нам также нужно экранировать следующие символы при его использовании: \.+*?^$|[(){ .

Чтобы найти чье-то имя в формате {first name starting with D} {last name starting with F}, мы можем использовать регулярное выражение ^D[a-z]+\sF[a-z]+$. ^ и $ представляют собой начинается с и заканчивается на соответственно. \s представляет пробел.

Другие похожие посты о Python: