Начиная с честного опыта здесь – впервые я увидел используемое выражение режима режима, было проверить действительные идентификаторы почты в программе C#. Я был довольно новичок в программировании тогда, и это был фрагмент кода, написанный одним из моих коллег. Поверьте мне, моя первая реакция на то, чтобы увидеть выражение корпорации, заключалась в том, что что -то пошло не так с кодом, и мы получили кучу отчужденных случайных символов среди кода.
Но теперь, несколько источников спустя, я уделяю минуту, чтобы оценить, как выражения режима режима упростили программирование.
В питоне режима обрабатывается Re модуль.
re.compile ()
После составления экспрессии режима режима функция дает объект экспрессии коррекса, который можно дополнительно использовать для сопоставления и других целей.
Лучшая практика – компилировать регулярное выражение, если то же самое используется несколько раз в одной программе.
reg_obj = re.compile(reg_expression) result = reg_obj.match(sample_string)
исследовательская работа()
Эта функция сканирует образец строки, и везде, где находится первый совпадение, возвращает соответствующий соответствующий объект.
import re def search_string(string): to_search=['good','boy'] for pattern in to_search: if(re.search(pattern,string)): print('Match Found') print(re.search(pattern,string)) else: print(re.search(pattern,string)) print('NO match found') search_string('You\'re a good buoy')
Выход:
Match FoundNone NO match found
Примечание: Пролет дает начальный и конечный индекс в образце строки, где был найден первый матч.
re.match ()
Разница между совпадением и поиском состоит в том, что совпадает поиск в начале образца строки, а затем, если совпадение найдено, возвращает соответствующий соответствующий объект.
Примечание: Функция соответствия может быть выполнена с помощью поиска с помощью ^ в начале рисунка регулярного выражения.
import re def match_reg(string): reg = (r'.*[0-9]$') if(re.match(reg,string,re.IGNORECASE)): print("Match Found!") else: print('No match found!') match_reg('abc07') match_reg('3') match_reg('21abc')
Выход:
Match Found! Match Found! No match found!
re.fullmatch ()
Как следует из названия, оно используется для сопоставления всей примерной строки.
re.findall ()
Должно быть, к настоящему времени вы заметили, что оба match () и search () возвращают первое вхождение соответствующего шаблона, однако, если мы хотим получить полный список всех неперестанных совпадений, то это наш метод. Результатом будет список групп/кортежей в зависимости от количества групп, которые будут сопоставлены.
sample = 'abc23@gmail.com, randomfella99@hotmail.com, suv04@yahoomail.com' emails = re.findall(r'[\w\.-]+@[\w\.-]+', sample) emails for email in emails: print(email)
Выход:
abc23@gmail.com randomfella99@hotmail.com suv04@yahoomail.com
re.finditer ()
Он возвращает итератор соответствующих объектов. Несколько похоже на re.findall ().
re.split ()
Он расщепляет образец строки на основе прошедшего шаблона. Если будет установлен какой -либо предел максимального количества, он выполнит операцию раскола так много раз, а конечная строка должна содержать оставшуюся часть образца строки, которая не может быть разделена.
re.split(r'\W+', 'Words, words, words.')
Выход:
['Words', '', 'words', '', 'words', '']
re.sub ()
Используется в качестве функции для замены соответствующих шаблонов строки новым заданным шаблоном.
import re sample_input='this contains abc and abc only' result = re.sub('abc', 'def', sample_input) result
Выход:
'this contains def and def only'
Надеюсь, это было полезно!
Оригинал: “https://dev.to/suvhotta/python-regex-functions-3d2n”