Python: некоторые регулярные выражения не работают, если строка не начинается и не заканчивается одним и тем же символом

Suzana Me

Newbie
03.06.2021
8
0
Привет. У меня небольшая проблема с Python и Regex. Фактически, некоторые регулярные выражения не работают, если строка не начинается и не заканчивается одним и тем же символом. Например, у меня есть HTML-теги:

Код:
pattern1 = r'<p class="text_obisnuit">.*((bebe|oana|mother|sun).*){3,}.*</p>'
pattern2 = r'<p class="text_obisnuit2">.*((bebe|oana|mother|sun).*){3,}.*</p>'
pattern3 = r'<title>.*((bebe|oana|mother|sun).*){3,}.*</title>'
pattern4 = r'<meta name="description" content=.*((bebe|oana|mother|sun).*){3,}.*>'

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

Но тег 4 с метаописанием не работает. Python ничего не может найти с регулярным выражением.
 
Последнее редактирование:
Я нахожу решение. Регулярное выражение пытается перевести все внутреннее содержимое тегов, однако вы, что часть содержимого метатега не является внутренним содержимым. Мне пришлось сделать отдельную проверку, чтобы увидеть, был ли это метатег, а затем сделал перевод специально для метатега под этой проверкой.

Итак, после этого регулярного выражения я должен добавить этот код:

Код:
 for pattern in patterns:
                for x in re.finditer(pattern, page):
                    updated = True
                    new = x.group(0)
                    soup = BeautifulSoup(new, 'html.parser')
                    if pattern != pattern4:
                        recursively_translate(soup)
                    else:
                        meta = soup.find('meta')
                        meta['content'] = translator.translate(meta['content'], dest=destination_language).text
                    soup = soup.encode(formatter=UnsortedAttributes()).decode('utf-8')
                    page = page.replace(new, soup)
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →

Популярный контент

🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab