可能重复:
Strip html from strings in python
RegEx match open tags except XHTML self-contained tags
我的python模块中有正则表达式模式,它从给定的字符串中删除了html标记。
这种情况不适用。
输入字符串:
string=<li class="
tal
"><h3><a href="/aclk?sa=l&ai=CoS4y-Wz0TrnqC8y0rAfysK2DB46PiJECzoK8_yKPwd4FCAAQAigCUL7Kz4P9_____wFg5erjg5gOoAH0m_XuA8gBAakCoqvilYNWVD6qBB1P0Dm6CNzrf62IC36fDvUIh77EpeheIRdH_YEaPw&sig=AOD64_2z9xPK8vOxUCpIGTjBcc2Lg-GAeA&adurl=http://www.policybazaar.com/creditcards/creditcard-india.aspx%3Futm_source%3Dgoogle%26utm_medium%3Dppc%26utm_term%3DCreditcard_delhi_only%26utm_campaign%3Dcredit_card" id="pa2">Compare <b>Credit Cards</b> | PolicyBazaar.com</a></h3>Get Best <b>Credit Card</b> For Free, Now U Have a Choice, Choose wisely!<br /><cite>www.policybazaar.com/<b>credit</b>-<b>Cards</b></cite></li>
正则表达式:
In [64]:p = re.compile(r'<.*?>')
In [65]:text=p.sub('',str(string))
In [66]: text
Out[66]: '<li class="\n tal\n ">Compare Credit Cards | PolicyBazaar.comGet Best Credit Card For Free, Now U Have a Choice, Choose wisely!www.policybazaar.com/credit-Cards'
结果仍然是<li>
标记。无论此类名称和字符串模式如何,都应如何删除它。
答案 0 :(得分:4)
在这种情况下,您应该使用DOTALL
功能:
p = re.compile(r'<.*?>',re.DOTALL)
应该有用。
但是......您不应该使用正则表达式进行HTML解析,请参阅:https://stackoverflow.com/a/1732454/11621
HTH。
答案 1 :(得分:2)
谷歌或搜索Stackoverflow的HTML和正则表达式 - 这是一个坏主意。你最好使用Beautiful Soup或其他一些真正的HTML解析器并修改DOM。
答案 2 :(得分:0)
如果您只想从字符串中删除所有HTML,可以查看以下内容:http://code.activestate.com/recipes/440481-strips-xmlhtml-tags-from-string/