仅当出现在特定模式之后的字符才从 HTML 字符串中删除
Posted
技术标签:
【中文标题】仅当出现在特定模式之后的字符才从 HTML 字符串中删除【英文标题】:Remove characters from HTML string only if they appear after specific pattern 【发布时间】:2019-01-13 07:22:41 【问题描述】:所以,我尝试用谷歌搜索我的问题,但找不到满意的答案。我编写了一个用于解析 html 电子邮件的程序。直到现在它都可以正常工作,但我猜 Outlook 协议中已经更新了一些东西。但是,现在,在提取电子邮件的 HTML 内容时,除了 style
标记外,一切正常。
style
标记之后的所有内容由于某种原因自动转义。例如像这样:<span style=\'color:red; background:yellow; mso-highlight:yellow\'>
和 <span style=\'background:yellow;mso-highlight:yellow\'>
注意样式 '
标记是如何因某种原因被转义的?这导致我的软件出现问题,并使其崩溃。我真的不需要这些转义标记并想摆脱它们。
所以现在我的问题是,如何仅删除这些特定位置的标记(如果可能)?所以只在style=
之后以及样式属性的末尾,就在'>
之前。非常感谢所有帮助,我完全不知道如何进行。我真的不想删除所有的反斜杠,所以没有任何真正需要转义的东西不会被转义。
提前致谢!
【问题讨论】:
【参考方案1】:一个简单的正则表达式应该可以工作:
import re
text = re.sub(r"style=\'(.*)\'", r"style='\1'", raw_text)
【讨论】:
完美,正是我想要的!太感谢了!我的正则表达式技能真的很生疏以上是关于仅当出现在特定模式之后的字符才从 HTML 字符串中删除的主要内容,如果未能解决你的问题,请参考以下文章