[英]How to parse paragraph in html using regex
我需要编写一个正则表达式来解析我尝试过的 HTML 页面中段落之间的 $$ 符号
s = "<p>adsadfsaaadsadsaExample String</p><p>$$</p>"
replaced = re.sub('<p>\$\$</p>', '1',s)
print (replaced)
但是即使段落中存在一些styles,我也需要应用相同的,
预期输入:
<p>i have</p> <p style="text-align:justify">$$</p>
<p> asdas jas dafad</p>
<p>$$<p>
<p>asdasd</p>
<p><span>$$</span></p>
预期 Output:
<p>i have</p> 1
<p> asdas jas dafad</p>
1
<p>asdasd</p>
1
请帮忙
import re
pattern = r'\<p.*?\>.*?\<\/p\>'
html_str = '<p>i have</p> <p style="text-align:justify">$$</p><p> asdas jas dafad</p><p>$$</p><p>asdasd</p><p><span>$$</span></p>'
new_html_str = re.sub(pattern, lambda match: "1" if '$$' in match.group() else match.group(),s)
print(new_html_str)
prints - '<p>i have</p> 1<p> asdas jas dafad</p>1<p>asdasd</p>1'
我的回答完全基于您的方法,为了获得更好的解决方案,我建议解析 html 并进行处理。
import re
s = """<p>i have</p> <p style="text-align:justify">$$</p>
<p> asdas jas dafad</p>
<p>$$<p>
<p>asdasd</p>
<p><span>$$</span></p>"""
result = re.sub(r"<p .*=.*>\$\$.*?</?p>", "1", s)
result = re.sub(r"<p.*>\$\$.*?</?p>", "1", result)
print(result)
Output:
<p>i have</p> 1
<p> asdas jas dafad</p>
1
<p>asdasd</p>
1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.