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

Регулярное выражение в Python

Модуль Python Re используется для регулярного выражения в Python. Он предоставляет функцию поиска () и Findall (), чтобы соответствовать Regex со строкой и находить все совпадения.

Автор оригинала: Pankaj Kumar.

Регулярное выражение в Python используются для сопоставления шаблона со строкой. Формально, а регулярное выражение Это последовательность символов, которые определяют шаблон поиска. Регулярные выражения Python являются мощным способом соответствия узоры текста. Модуль Re , Короче для регулярного выражения, это модуль Python, который предоставляет нам все особенности регулярных выражений.

1. Использование модуля Python Re

Давайте посмотрим на несколько распространенных примеров модуля Python Re. Это встроенный модуль Python, поэтому нам не нужно его устанавливать.

1.1) Re.Search ()

Re.Search (Pattern, Str) используется для поиска последовательности шаблон , что является регулярным выражением, внутри утра (Строка поиска) и возвращает соответствие, если шаблон найден.

Давайте посмотрим на пример для того же

import re

str = 'This is a sample text which we use to search a pattern within the text.'

pat = r'text'

match = re.search(pat, str)

if match is None:
    print('Pattern not found')
else:
    print('Pattern found!')
    print('Match object', match)

Выход

Pattern found!
Match object 

Как видите, вывод показывает, что там действительно существует совпадение шаблона, мы искали простое слово текст в утра и пролет обозначает индексы матча. То есть ул [17] к ул [20] соответствует, что соответствует подстроке текст , как и ожидалось. Но это только дает первый матч.

1.2) Re.findall ()

Чтобы дать список всех сопоставленных строк, мы используем Re.findall (pat, str) Чтобы вернуть список всех подобранных строк (которые могут быть пустыми).

>>> matches = re.findall(pat, str)
>>> print(matches)
['text', 'text']

Re.findall () Это чрезвычайно мощная функция для извлечения узоров, и это можно использовать на что-либо, например, поиск в файлах.

import re
with open('text.txt', 'r') as f:
    matches = re.findall(r'pattern', f.read())
print(matches)

2. Правила регулярного выражения в Python

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

2.1) идентификаторы

Это шаблонные идентификаторы и правило, которое следует каждый идентификатор.

Шаблон Правило
\d Соответствует любому номеру
\D Соответствует ничего, кроме чисел
\s Соответствует одному пространству
\S Совпадает с чем-либо, кроме пространства
\w Соответствует любой букве
\W Совпадает с чем-либо, кроме буквы
. Соответствует любому символу, кроме новой строки (\ n)
\. Соответствует полной остановке
\b Пространство вокруг слов (слово границы)

2.2) Модификаторы

Помимо идентифицируемых, есть определенные операторы/модификаторы, которые следуют регулярные выражения.

Модификатор Правило
* Соответствует нулю или более вхождению предыдущего символа / идентификатора
+ Соответствует одному или нескольким вхождению
? Соответствует 0 или 1 повторениям / вхождениям
$ Выполните совпадение в конце строки
^ Выполните совпадение в начале строки
{1,3} Соответствовать, если количество повторений где-то от 1 до 3 раз
{3} Соответствовать, если количество повторений ровно 3 раза
{3,} Соответствовать, если 3 или более раз
[A-Z] Соответствовать любому одному символу от A до Z

Вот пример, используя некоторые из вышеуказанных правил.

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

import re

str = 'There are 10,000 to 20000 students in the college. This can mean anything.\n'

pat = r'are{1,}\s[a-z0-9,\s]+'

match = re.search(pat, str)
matches = re.findall(pat, str)

if match is None:
    print('Pattern not found')
else:
    print('Pattern found!')
    print('Match object', match)
    print('Listing all matches:', matches)

Выход

Pattern found!
Match object 
Listing all matches: ['are 10,000 to 20000 students in the college']

3. Заключение

Мы узнали основы регулярных выражений, и как мы могли бы использовать Python’s Re Модуль для этой функциональности для соответствия шаблонам с использованием правил регулярного выражения.

4. Ссылки