Я написал регулярное выражение и протестировал его на regex101.com, но когда я внедряю его в свой код, я не получаю возвращаемых значений и понятия не имею, почему.
Я очищаю HTML-документ (в частности, RSS-канал), и другие регулярные выражения работают с этим HTML-документом в той же программе, но не с этой конкретной!Я просто в растерянности, так как он работает на regex101.com (и в другой программе на Python, у меня есть доступ к которой был разработан специально для тестирования regex. Мне нужно почистить название статьи, описание и дату / время ееНазвания и работа с датой / временем (пример работы с заголовком ниже), но я не могу напечатать описание (переменная 'snippets').
Что я пробовал:
#There's a 'download' function earlier on which downloads the RSS page to a file
text_in = download(url='https://www.theverge.com/rss/index.xml', target_filename = 'downloadtheverge')
text_in = open('downloadtheverge.xhtml', 'r', encoding="utf8").read()
snippetresults = sorted
(set(findall(r'<p\sid=\"[A-Za-z0-9]*\">([A-Za-z0-9\s\-\—\:\/\,\’\'\‘\?\!\.]*\s?)<\/p>', text_in)))
for snippets in snippetresults:
print(snippets)
Пример того, что ищется:
<p id="BjKuOh">Only a single key change isn’t being reversed: YouTube will actually verify that channels are authentic, whereas in the past it seemingly has not thoroughly taken this very obvious step.</p>
Что возвращается из регулярного выражения на regex101.com:
'Только одно изменение ключа не отменяется: YouTube фактически проверит подлинность каналов, в то время как в прошлом он, по-видимому, не делал этого очевидного шага полностью.'
Что работает:
titlesresults = sorted
(set(findall(r'<title>([A-Za-z0-9\s\-\—\:\/\,\’\'\‘\?\!\.]+\s?)<\/title>', text_in)))
for titles in titlesresults:
print(titles)
Тот же формат, возвращает заголовки в HTML-документе в окно оболочки, например так: «Наушники Beats получат такой же обмен аудио в iOS 13.1функция AirPods необновить до iOS 13.0, если вы играете в Fortnite или PUBG Mobile и т. д. и т. д.
Тем не менее, когда я запускаю его в своей программе, используя 'сниппеты', окно оболочки ничего не возвращает ... Любая помощь будет принята с благодарностью!