Я очистил несколько статей с веб-сайта, и теперь я пытаюсь сделать корпус более удобочитаемым, удалив первую часть из текста, скреблированного. Интервал, в который он должен быть удален, находится в теге <p>Advertisement
и окончательном теге </time>
перед началом статьи. Как вы можете видеть, регулярное выражение должно удалять несколько слов на нескольких строках. Я пробовал с помощью последовательности DOTALL, но это было неудачно.Регулярные выражения | Удалить слова на нескольких строках перед заданным словом
Это моя первая попытка:
import re
text='''
<p>Advertisement</p>, <p class="byline-dateline"><span class="byline"itemprop="author creator" itemscope="" itemtype="http://schema.org/Person">By <span class="byline-author"
data-byline-name="MILAN SCHREUER" itemprop="name">MILAN SCHREUER</span> and </span><span class="byline"
itemid="http://topics.nytimes.com/top/reference/timestopics/people/r/alissa_johannsen_rubin/index.html"
itemprop="author creator" itemscope="" itemtype="http://schema.org/Person"><a href="http://topics.nytimes.com/top/reference/timestopics/people/r/alissa_johannsen_rubin/index.html"
title="More Articles by ALISSA J. RUBIN"><span class="byline-author" data-byline-name="ALISSA J. RUBIN" data-twitter-handle="Alissanyt" itemprop="name">ALISSA J. RUBIN</span></a></span><time class="dateline" content="2016-10-06T01:02:19-04:00"
datetime="2016-10-06T01:02:19-04:00" itemprop="dateModified">OCT. 5, 2016</time>
</p>, <p class="story-body-text story-content" data-para-count="163" data-total-count="163">BRUSSELS — A man wounded two police officers with a knife in Brussels around noon on Wednesday in what the authorities called “a potential terrorist attack.”</p>, <p class="story-body-text story-content"
data-para-count="231" data-total-count="394">The two officers were attacked on the Boulevard Lambermont in the Schaerbeek district, just north of the city center. A third police officer, who came to their aid, was also injured. None of the three had life-threatening injuries.</p>
'''
my_pattern=("(.*)</time>")
results= re.sub(my_pattern," ", text)
print(results)
Что делать, если я хочу опустить первый тег
Реклама
и его атрибут? –@ M.Huntz Вы пытаетесь сделать что-то вроде этого '(? <=\<\/p\>) [\ s \ S] + \ <\/time\>' или это '(? <=\<\/p\>) [\ s \ S] + \ <\/time\> [\ s \ S] \ <\/p\> \ , \ s' Demo: https://regex101.com/r/79n80Z/3 – Ibrahim