【问题标题】:Python replace & with & [duplicate]Python用&替换& [重复]
【发布时间】:2019-08-11 07:56:31
【问题描述】:

我希望 python 正则表达式将 xml obj 中的 & 替换为 &。但不能替换<>

例子:

dataobj = '<Style width="100.000000%"/><Data&><![CDATA[<p>TEST TEST &lt; TEST 10&gt; starts &" and T&L'

我的预期输出应该是

outputdata = '<Style width="100.000000%"/><Data&amp;><![CDATA[<p>TEST TEST &lt; TEST 10&gt; starts &amp;" and T&amp;L'

我可以严格地说 &amp;lt; &amp;gt; &amp;eq; &amp;in; &amp;amp; 不应该改变任何东西。我在哪里找到 &amp;amp; 应该替换为 &amp;amp; 但不是 &amp;lt; &amp;gt; &amp;eq; &amp;in; &amp;amp;

【问题讨论】:

标签: python regex xml


【解决方案1】:

我认为负前瞻可能就足够了,尽管取决于具体的用例,XML 解析器可能会更好:

import re
dataobj = '<Style width="100.000000%"/><Data&><![CDATA[<p>TEST TEST &lt; TEST 10&gt; starts &" and T&L'

amp = re.compile(r'&(?![lg]t;)')
print(re.sub(amp,'&amp;',dataobj))

生产

<Style width="100.000000%"/><Data&amp;><![CDATA[<p>TEST TEST &lt; TEST 10&gt; starts &amp;" and T&amp;L

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    相关资源
    最近更新 更多