Автор оригинала: Sadhana Reddy.
Регулярные выражения-это последовательность символов, используемая для поиска и замены шаблонов в строке, проще говоря, это инструмент для сопоставления шаблонов в тексте.
В python у нас есть “re” модуль, который нам нужно импортировать, прежде чем мы сможем начать
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} -> Соответствует и должно соответствовать m {m,} -> Соответствует больше, чем m {m,n} -> Соответствует цифре между m и n по длине ? –> -> Соответствует одному или нулевому вхождению паттерна плюс(+) –> Соответствует одному или нескольким вхождениям паттерна
sub —-> Найдите все подстроки, где re совпадает, и замените их другой строкой subn – – – – > такой же, как sub (), но возвращает новую строку и количество замен start – – – – > Это даст начальную позицию end – – – – > Это даст конечную позицию span – – – – > Это даст начальную и конечную позиции подстроки search – – – – > Поиск всей строки match – – – – > Поиск первого слова findall – – – – > Несколько раз поиск в строке compile – – – – – > Мы можем скомпилировать шаблон в объект pattern
Здесь я показываю, как использовать некоторые из этих методов
re.поиск()
Этот метод поиска будет искать по всей строке и дает результат, если более одного совпадения, он возвращает первое появление шаблона поиска
Пример :
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: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:
ре.матч()
Он будет искать первое слово в данной строке. Если первое слово будет совпадать, оно выдаст требуемый вывод, если первое слово не совпадет, оно выдаст None в качестве вывода
Пример :
import re s=("hi.hello Welcome, my name is python") y=re.match('hi',s) print(y) print(y.group(0))
Output: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
re.компиляция()
Мы можем объединить шаблон регулярного выражения в объекты шаблона,которые можно использовать для сопоставления шаблонов.Это также помогает искать шаблон, не переписывая его
Пример :
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']
Для получения дополнительных упражнений с регулярными выражениями Нажмите здесь
Это все, что нам нужно знать о регулярных выражениях. Практикуйтесь все больше и больше, пока вам это не пригодится.