Любая буква регулярные выражения python

Любая буква регулярные выражения python

Этот код вернет None , несмотря на то, что в строке есть 5 фрагментов «ку». Это происходит потому, что оба фрагмента расположены не в начале строки.

re.search() – находит первое вхождение фрагмента в любом месте и возвращает объект match. Если в строке есть другие фрагменты, соответствующие запросу, re.search их проигнорирует. У re.search есть дополнительные методы:

.span() – возвращает кортеж, содержащий начальную и конечную позиции искомого фрагмента.

.string – вернет строку, переданную в функцию re.search.

.group() – возвращает фрагмент строки, в котором было обнаружено совпадение.

<i data-lazy-src=

import re s = 'По всем вопросам пишите на vasiliy-pupkin@gmail.com, или на secondemail@yandex.ru, отвечу сразу. Или пишите моему ассистенту secretary@gmail.com!' emails = re.findall(r'[\w\.-]+@[\w\.-]+', s) for email in emails: print(email) 

Имеется файл transactions.txt, в котором даты указаны в формате MM/DD/YYYY, при этом в некоторых случаях месяц обозначен первыми тремя буквами: NOV, dec, JAN. Нужно привести даты к формату MM-DD-YYYY.

#формат дат в файле transactions.txt nov/14/2021 dec/15/2021 12/16/2021 dec/17/2021 jan/03/2022 JAN/10/22 
import fileinput import re fn = "transactions.txt" for line in fileinput.input(fn, inplace=True): new_line = re.sub('(\d|[a-yA-Y])\/(\d)\/(\d)', r'\1-\2-\3', line) print(new_line) 
#Содержимое файла после выполнения кода: nov-14-2021 dec-15-2021 12-16-2021 dec-17-2021 jan-03-2022 JAN-10-2022 

Вводится последовательность строк. Нужно вывести строки, в которых фрагмент «кот» присутствует в качестве подстроки не менее 2 раз.

#Пример ввода кот-кот кот и кот котофей котейка кот кот и котенок 
import re import sys for line in sys.stdin: line = line.strip() if re.search(r"кот.*?кот", line): print(line) 

Дана последовательность строк. Нужно вывести те, в которых «кот» встречается в качестве отдельного слова.

#Пример ввода: кот в сапогах кошка и кот котофей котяра 
import re import sys for line in sys.stdin: line = line.rstrip() if re.search(r"\bкот\b", line): print(line) 
#Вывод кот в сапогах кошка и кот 

Вывести слова, состоящие из двух одинаковых слогов.

#Пример ввода тартар тик-так сносно варвар барабан 
import re import sys for line in sys.stdin: line = line.strip() if re.search(r"\b(\w+)\1\b", line): print(line) 
#Вывод тартар сносно варвар 

Вводится последовательность строк. В каждой строке нужно поменять местами две первые буквы в каждом слове, состоящем из двух и более букв.

#Пример ввода это пример текста в котором нужно поменять буквы 
import sys import re for line in sys.stdin: line = line.rstrip() print(re.sub(r'\b(\w)(\w)', r"\2\1", line)) 
#Вывод тэо рпимер еткста в октором унжно опменять убквы 

Напишите функцию для валидации мобильного номера в международном формате. Корректным считается представление номера в таком виде:

+7(912)15-16-896, 8(912)15-16-896 +79121516896, 89121516896 +7(912)151-68-96, 8(912)151-68-96 +7912-151-6896, 87912-151-6896 
import re pattern = re.compile(r'(\+7|8).*?(\d).*?(\d).*?(\d).*?(\d)') def isValid(number): if re.match(pattern, number): print("ДА") else: print("НЕТ") isValid(input()) 

Напишите программу для парсинга номеров телефонов с тестовой страницы .

import urllib.request from re import findall url = "http://www.summet.com/dmsi/html/codesamples/addresses.html" response = urllib.request.urlopen(url) data = response.read() s = data.decode() phones = findall("\(\d\) \d-\d", s) for number in phones: print(number) 

Нужно извлечь все имена и фамилии из текста.

import re s = 'На встрече присутствовали: профессор Владимир Успенский, физик-ядерщик Сергей Ковалев, президент клуба Владимир Медведев и космонавт Юрий Титов.' name = r"[А-Я][а-я]+,?\s+" last_name = r"[А-Я][а-я]+" persons = re.findall(name + last_name, s) for item in persons: print(item) 

Нужно получить URL всех png и jpg изображений, использованных на главной странице proglib.io:

import re import requests def getURL(text): urls = [] results = re.findall(r'(?:http\:|https\:)?\/\/.*\.(?:png|jpg)', text) for x in results: if not x.startswith('http:'): x = 'http:' + x urls.append(x) return urls def getImages(url): resp = requests.get(url) urls = getURL(resp.text) print('urls', urls) getImages('https://proglib.io') 

Заключение

Regex в Python – мощный, гибкий, но достаточно сложный инструмент. Регулярные выражения сложно составлять, поддерживать и редактировать. При работе с текстовыми файлами Regex чаще всего можно заменить методами строк, а при парсинге, в большинстве случаев, использование XPath и CSS-селекторов окажется более эффективным.

Читайте также:  Основы PHP

Материалы по теме

Источник

Оцените статью