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

Регулярные выражения — это последовательность символов, используемая для поиска и замены шаблонов в строке. Проще говоря, это инструмент для сопоставления шаблонов в тексте.

В питоне у нас есть «ре» модуль, который нам нужно импортировать, прежде чем мы сможем начать

import re

Основные области применения регулярных выражений:

  • Поиск строки
  • Заменить часть строки
  • Поиск строки
  • Разбить нашу строку на подстроки

Методы регулярных выражений

\w —> Соответствует буквенно-цифровым символам [a-z,A-Z,0-9]
\W —> Соответствует не буквенно-цифровым символам
\d —> Соответствует цифрам [0-9]
\D —> Соответствует всем нецифрам
\s —> Соответствует одному пробелу
\S —> Соответствует всем, кроме пробела
\t —> вкладка «Совпадения»
\n —> Соответствует новой строке
\r —> Возвращает совпадения
. —> Соответствует любому символу, кроме \n
() —> группирует регулярные выражения и возвращает соответствующий текст
a|b —> Соответствует либо a, либо b
^ —> начальная позиция
$ —> конечная позиция
{m} —> Соответствует must и should m
{m,} —> Соответствует больше m
{m,n} —> Соответствует цифре длиной от m до n.
? —> Соответствует одному или нулю экземпляров шаблона
plus(+) —> Соответствует одному или нескольким вхождениям шаблона

регулярное выражение-пример-2.png

суб —-> Найдите все подстроки, где re соответствует, и замените их другой строкой
субн ——> то же, что и sub(), но возвращает новую строку и количество замен
начать —-> Это даст исходное положение
конец —-> Это даст конечное положение
диапазон —-> Это даст начальную и конечную позиции подстроки
поиск —-> Поиск по всей строке
совпадение —-> поиск по первому слову
найтивсе —-> Многократный поиск в строке
скомпилировать ——> Мы можем скомпилировать шаблон в объект шаблона

Здесь я показываю, как использовать некоторые из этих методов

исследовательская работа()

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

Пример :

import re
s=("Hi i am python and my no is 7867465789")
z=re.search('\d{10}',s)
print(z)
print(z.group(0))
print(z.start())
print(z.end())
Output:
<re.Match object; span=(28, 38), match="7867465789">
7867465789
28
38
print(re.search(r'\d{13}', '9876543210999999999999').group())
Output: 9876543210999
import re
s = ("hi Welcome to python course")
g=re.search('welcome',s,re.I|re.M)
print(g)
Output: <re.Match object; span=(3, 10), match="Welcome">

повторный матч()

Он будет искать первое слово в заданной строке. Если первое слово будет соответствовать, оно даст требуемый результат, если первое слово не соответствует, оно даст Никто как выход

Пример :

import re
s=("hi.hello Welcome, my name is python")
y=re.match('hi',s)
print(y)
print(y.group(0))
Output:
<re.Match object; span=(0, 2), match="hi">
hi
d=re.match('hello',s)
print(d)
Output: None

Потому что привет не первое слово в строке

re.findall()

Findall возвращает все непересекающиеся совпадения шаблонов в строке.

Пример :

import re
s=("hey hi hello how are you?")
i=re.findall('h',s)
print(i)
Output: ['h', 'h', 'h', 'h']
import re
s = ("hi i am sadhana and my email id is sadhana-2018@gmail.com, my another email id is sadhana.python@gmail.com")
# here re.findall() returns a list of all the found email strings
z = re.findall(r'[\w\.-]+@[\w\.-]+',s)
print(z)
Output:
['sadhana-2018@gmail.com', 'sadhana.python@gmail.com']
import re
print(re.findall(r'\w','i love python'))
Output: ['i', 'l', 'o', 'v', 'e', 'p', 'y', 't', 'h', 'o', 'n']

Это помогает найти шаблон и заменить его новой подстрокой.

Пример :

import re
result=re.sub(r'India','the World','Codementor is the great platform in India')
print(result)
Output:
Codementor is the great platform in the World

перекомпилировать()

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

Пример :

import re
pattern=re.compile('good')
a=pattern.findall('When you think positive good things happen')
print (a)
b=pattern.findall('Life is all about having a good time')
print (b)
Output:
['good']
['good']

Упражнения

1. Извлечь все символы из заданной строки

import re
a=re.findall(r'.','Sadhana loves Python')
print (a)
Output:
['S', 'a', 'd', 'h', 'a', 'n', 'a', ' ', 'l', 'o', 'v', 'e', 's', ' ', 'P', 'y', 't', 'h', 'o', 'n']

2. Извлечь каждое слово из заданной строки

import re
a=re.findall(r'\w*','My name is sadhana')
print (a)
Output:
['My', '', 'name', '', 'is', '', 'sadhana', '']

3. извлечь числа из заданной строки

import re
a=re.findall(r'\d+','My name is sadhana, my number is 32456')
print (a)
Output: ['32456']
import re
a=re.findall(r'\d*','My name is sadhana, my number is 32456')
print (a)
Output: ['3', '2', '4', '5', '6']

Дополнительные упражнения с регулярными выражениями кликните сюда

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *