仅在HTML文件中的特定单词后删除部分文本

2024-10-05 14:31:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python非常陌生(一周大),所以如果这听起来很愚蠢,我很抱歉,但我真的非常感谢您的帮助。我想在HTML文件中对文本的特定部分进行scape。例如,假设整个文本是:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc fringilla arcu congue metus aliquam mollis. Mauris nec maximus purus. Maecenas sit amet pretium tellus. Quisque at dignissim lacus.

我想替换“mollis”一词之后和“Quisque at Dignessim lacus”一词之前的所有文本,理想的输出应该是:

Mauris nec maximus purus. Maecenas sit amet pretium tellus.

到目前为止,我刚刚从一个网站上刮下了一些部分,并删除了HTML标记:

from bs4 import BeautifulSoup
from re import findall

file = open('filename.html', encoding= "UTF-8")
soup = BeautifulSoup(file, 'lxml')

for match in soup.find_all('div', class_='discussion-desc'):
    recom = match.text

re.findall(r'@(\w+)','recommendations')
#['recommendations', 'steps']
#re.findall(r'@(\w+)', 'recommendations')
#[]
#(re.findall(r'@(\w+)', 'recommendations') or None,)[0]
#'recommendations'
#print (re.findall(r'@(\w+)', 'recommendations') or None,)[0]
#None

请帮忙,谢谢


Tags: 文本renonehtmlnecrecommendationsametsit
1条回答
网友
1楼 · 发布于 2024-10-05 14:31:20

在单一发生的情况下,您可以使用:re.search()

s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc fringilla arcu congue metus aliquam mollis. Mauris nec maximus purus. Maecenas sit amet pretium tellus. Quisque at dignissim lacus"

re.search(r'mollis\.(.*?)Quisque at dignissim lacus', s).group(1)

输出:

Out[28]: ' Mauris nec maximus purus. Maecenas sit amet pretium tellus. '

如果发生多次,请查看re.findall()

相关问题 更多 >