Регулярные выражения (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
- https://www.programiz.com/python-programming/regex
- https://realpython.com/regex-python/
- https://github.com/ziishaned/learn-regex ( Мой личный любимый )
Это все на сегодня. Завтра я буду копать в техниках тестирования в Python. Я очень взволнован этим.
Иметь отличный!
Оригинал: “https://dev.to/arindamdawn/30-days-of-python-day-19-regular-expressions-3jkj”