我有一个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),这是不允许的。我重写了代码以使用列表理解,现在它运行良好。你知道吗
我相信你想要的是:
你的HTML不是一个完整的HTML标记,如果你真的想匹配你给出的字符串,你可以使用这个:
re.findall("\.trb_m_b.*?></div></div>", string)
相关问题 更多 >
编程相关推荐