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

30 дней Python 👨💻 – День 19 – Регулярные выражения

Регулярные выражения (Regex / Regexp) – мощная концепция программирования и универсален по всему прогу … Теги с Python, Challenge.

Регулярные выражения (Regex/Regexp) – это мощная концепция программирования и универсален по всем языкам программирования. Но часто указывается, что запутается и трудно интерпретировать главным образом начинающим. Регулярные выражения являются последовательностью шаблонов символов, используемых для эффективного поиска строк поиска. Они предлагают широкий спектр случаев использования при работе с текстами, такими как поиск, проверка или замена текстов.

Сегодня я исследовал, как использовать Regex в Python.

Регулярное выражение (сокращенное как Regex или Regexp также называлось рациональным выражением), является последовательностью символов, которые определяют шаблон поиска. Обычно такие шаблоны используются алгоритмами поиска строки для операций «Найти» или «Найти и заменить» на строках или для проверки ввода. Это техника, разработанная в теоретической информатике и теории формальных языков. (Википедия).

Из моего предыдущего опыта в записи программ JavaScript я уже знаком с регулярными выражениями. Кроме того, есть тонны удивительных ресурсов, доступных там в Интернете о регулярных выражениях. Мое намерение сегодня было проверить синтаксис и метод использования их в Python, как зная, как использовать регулярные выражения в Python, будет очень удобно при строительстве проектов в предстоящие дни. Поэтому я собрал вместе некоторые отличные ресурсы, связанные с Regex в этом посте вместе с некоторыми практическими упражнениями кодирования, которые я могу использовать в качестве ссылки в будущем. Это может помочь любому энтузиасту. Нет необходимости запоминать каждое правило Regex, так как они всегда могут быть проведены на основе требований, и наиболее распространенные шаблоны регулятора Regex легко доступны Таким образом, мы большую часть времени нам не нужно создавать комплексные узоры Regex.

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

Вот несколько прохладных ресурсов Regex, специфичные для Python

Практиковать и тестировать регулярные выражения Regex101 Это отличная учебная площадка. Это также помогает генерировать эквивалентный рисунок Python Regexp

Методы Regex в Python

Чтобы использовать регулярные выражения в Python, встроенный модуль Re должен быть импортирован. Этот модуль поставляется с несколькими методами использования REGEX.

re.search Проверьте, присутствует ли приведенный узор в любом месте входной строки
Вывод – это ре. Объект Match, используемый в условных выражениях
R-струны предпочли определить Re
Используйте байтовый шаблон для ввода байта
Python также поддерживает небольшой кеш недавнего RE
Re.fullmatch. обеспечивает шаблон соответствует всей входной строке
re.compile. Составьте узор для повторного использования, выводы Re. Объект шаблона
re.sub. Поиск и заменить
Re.sub (R’pat ‘, f, s) Функция f с Re. Матч объект как аргумент
re.escape. Автоматически избежать всех метасимволов
Re.Split. Разделить строку на основе Re
Текст, сопоставленный группами, будет частью вывода
Часть, соответствованная шаблоном вне группы, не будет в выходе
re.findall. Возвращает все спички в виде списка
Если используется 1 группа захвата, возвращается только его совпадения
1+, каждый элемент будет кортеж из групп захвата
Часть, соответствованная шаблоном вне группы, не будет в выходе
Re.finditer. итератор с ре. Сопоставить объект для каждого матча
повторно дает кортеж модифицированной строки и количества замены

Упражнения кода

Давайте попробуем построить какой-то код, чтобы проверить различные практические случаи Regex в создании приложений Python.

  • Валидатор пароля
# Prompts user to enter a password and validates it
# Criteria:
# Min 8 characters
# Only alphabets, numbers and @$!%*?& allowed
# should have atleast 1 uppercase character
# should have atleat 1 lowercase character
# should have atleast 1 special character
# should have atleast 1 number
import re

def password_checker():
    password = input('Please enter a password')
    password_pattern = re.compile(
        r"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
    )
    result = re.fullmatch(password_pattern, password)
    if result:
        print('Valid password')
    else:
        print('Invalid password')

password_checker()

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

Я предпочитаю использовать Компилировать Способ хранения рисунка Regex в качестве ссылки, которая может использоваться позже. Возвращает объект Regex.

R До того, как строка REGEX говорит переводчику Python, что это Сырая струна Отказ С сырыми строками нет необходимости вытекать персонажей.

  • Извлечь числа из строки
# Program to extract numbers from a string

import re

string = 'Python was introduced in 1992. This is year 2020.'
pattern = '\d+'

result = re.findall(pattern, string)
print(result) # ['1992', '2020']

Это некоторые основные примеры того, как Regex можно использовать в Python.

Вот несколько хороших статей для более подробной информации о Regex в Python

Это все на сегодня. Завтра я буду копать в техниках тестирования в Python. Я очень взволнован этим.

Иметь отличный!

Оригинал: “https://dev.to/arindamdawn/30-days-of-python-day-19-regular-expressions-3jkj”