Python正则表达式在字符串上无效

2024-06-26 18:08:39 发布

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

我有一个HTML文件,我使用lxml和BeautifulSoup(从HTML转换为文本)处理它。不知何故,下面格式不正确的HTML使它成为文本,我想删除它。我尝试在文本字符串中匹配类似“<;+>;”的内容,但不起作用。我要删除的字符串如下:

string = """ .trb_m_b:befoe{ctent:'Hide comments'}.trb_c_so{padding-top:10px;min-height:500px}||<div class="trb_c_so" data-role=c_container><div class="s_comments" data-sitename="ffff" data-content-id="jksjkj7878787" data-type=promo-comment data-publisher="ronctt"></div></div>"""

我试过的代码是:

pattern = re.compile(r'<.+>')
if (pattern.search(string)):
    print ("Found")

但是,正则表达式与字符串不匹配,尽管它应该匹配。你知道吗

为什么会这样?你知道吗

谢谢。你知道吗

编辑。看起来问题不在于正则表达式,而在于一些非常奇怪的东西。我在列表中有这个字符串,它是最后一项。当我第一次遍历它时,由于某种原因,程序从来没有命中它。不过,第二次是这样。我不明白为什么。你知道吗

编辑2。原来问题是我试图删除循环中的元素(如果它们匹配regex),这是不允许的。我重写了代码以使用列表理解,现在它运行良好。你知道吗


Tags: 文件字符串代码文本div编辑列表data
2条回答

我相信你想要的是:

import re
data = re.findall("\<(.*?)\>", string)

你的HTML不是一个完整的HTML标记,如果你真的想匹配你给出的字符串,你可以使用这个: re.findall("\.trb_m_b.*?></div></div>", string)

相关问题 更多 >