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

Использование режима с питоном

Подпишитесь на мой список рассылки сейчас по адресу http://jauyeung.net/subscribe/ Следуйте за мной в Twitter на https: // twi … Помечено Python, Codenewbie, Tutorial, новички.

Подписаться на мой список адресов электронной почты сейчас в http://jauyeung.net/subscribe/

Следуй за мной в Твиттере в https://twitter.com/AuMayeung

Еще много статей в https://medium.com/@hohanga

Еще больше статей в http://thewebdev.info/

Python – это удобный язык, который часто используется для сценариев, науки о данных и веб -разработки.

В этой статье мы рассмотрим, как использовать Regex с Python, чтобы облегчить поиск текста.

Регулярные выражения, или регуляторы, являются описаниями для шаблона текста.

Например, \ d представляет одну цифру. Мы можем комбинировать символы для создания регуляторов для поиска текста.

Чтобы использовать регуляторы для поиска текста, мы должны импортировать Re модуль, а затем создайте объект Regex с помощью строки Regex следующим образом:

import re  
phone_regex = re.compile('\\d{3}-\d{3}-\d{4}')

Приведенный выше код имеет регулярность для поиска номера телефона в Северной Америке.

Тогда, если у нас есть следующая строка:

msg = 'Joe\'s phone number is 555-555-1212'

Мы можем искать номер телефона внутри MSG С объектом резервуара Поиск метод следующим образом:

import re  
phone_regex = re.compile('\d{3}-\d{3}-\d{4}')  
msg = 'Joe\'s phone number is 555-555-1212'  
match = phone_regex.search(msg)

Когда мы осматриваем матч объект, мы видим что -то вроде:


Тогда мы можем вернуть строковое представление матча, позвонив в Группа Метод:

phone = match.group()

Телефон имеет значение '555-555-1212' Анкет

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

Чтобы сделать это с помощью нашего режима номера телефона, мы можем написать:

phone_regex = re.compile('(\d{3})-(\d{3})-(\d{4})')

Затем, когда мы называем Поиск , мы можем получить всю строку поиска или отдельные группы совпадений.

Группа принимает целое число, которое позволяет нам получить детали, которые соответствуют группам.

Поэтому мы можем переписать нашу программу, чтобы получить все совпадение и отдельные части номера телефона следующим образом:

import re  
phone_regex = re.compile('(\d{3})-(\d{3})-(\d{4})')  
msg = 'Joe\'s phone number is 123-456-7890'  
match = phone_regex.search(msg)  
phone = match.group()  
area_code = match.group(1)  
exchange_code = match.group(2)  
station_code = match.group(3)

В приведенном выше коде Телефон должен быть '123–456–7890' Поскольку мы ничего не передали Группа Анкет Передача в 0 также возвращает то же самое.

Area_code должен быть '123' С тех пор, как мы прошли 1 до Группа , который возвращает первый групповой матч.

Exchange_code должен быть '456' С тех пор, как мы прошли 2 до Группа , который возвращает второй групповой матч.

Наконец, station_code должен быть '7890' С тех пор, как мы прошли 3 до Группа , который возвращает 3 -й групповой матч.

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

Мы можем использовать | Символ, который называется трубой, чтобы соответствовать одному из многих выражений.

Например, мы пишем следующее, чтобы получить матч:

import re  
name_regex = re.compile('Jane|Joe')  
msg = 'Jane and Joe'  
match = name_regex.search(msg)  
match = match.group()

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

Мы можем объединить трубы и скобки, чтобы найти часть струны. Например, мы можем написать следующий код:

import re  
snow_regex = re.compile(r'snow(man|mobile|shoe)')  
msg = 'I am walking on a snowshoe'  
snow_match = snow_regex.search(msg)  
match = snow_match.group()  
group_match = snow_match.group(1)

Чтобы получить весь матч с матч , который имеет значение 'снегоступа' Анкет

Group_match должен иметь частичный групповой матч, который является 'обувь' Анкет

Мы можем добавить знак вопроса в конце группы, что делает группу необязательной для сопоставления целей.

Например, мы можем написать:

import re  
snow_regex = re.compile(r'snow(shoe)?')  
msg = 'I am walking on a snowshoe'  
msg_2 = 'I am walking on snow'  
snow_match = snow_regex.search(msg)  
snow_match_2 = snow_regex.search(msg_2)

Тогда snow_match.group () Возвращает 'снегоступа' и snow_match.group (1) Возвращает 'обувь' Анкет

С тех пор, как (обувь) Группа необязательна, snow_match_2.group () Возвращает 'снег' и snow_match_2.group (1) возврат Нет Анкет

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

В Python мы можем использовать Re модуль для создания объекта резервуара из строки.

Тогда мы можем использовать его для поиска с Поиск метод

Мы можем определить группы со скобками. Как только мы это сделали, мы можем позвонить Группа На объекте матча, возвращенном Поиск Анкет

Группа возвращается, когда мы проходим в целом, чтобы получить его по своей позиции.

Мы можем сделать группы необязательными с вопросом, добавленным после группы.

Оригинал: “https://dev.to/aumayeung/using-regex-with-python-1l7e”