gpt4 book ai didi

用于替换文本中未编码的&符号的 Python 正则表达式

转载 作者:太空狗 更新时间:2023-10-30 00:26:57 25 4
gpt4 key购买 nike

我正在使用一个上游系统,该系统有时会向我发送用于 HTML/XML 输出的文本,其中包含未编码的符号:

str1 = "Stay at this B&B"
str2 = "He’s going to Texas A&M"
str3 = "He’s going to a B&B and then Texas A&M"

我需要用 & 替换未编码的符号,同时保留字符引用的一部分或已经编码的符号。

(修复上游系统不是一个选项,而且由于文本有时会部分编码,重新编码整个字符串也不是我能做的。我真的只是想解决这个烦人的问题继续我的生活)

这个正则表达式没问题,但我在弄清楚执行 re.sub 的语法时遇到了问题:

re.findall("&[^#|amp]", str3)

我不确定如何正确替换文本;我有一种感觉,它将涉及 re.group,但这是我的正则表达式 -foo 的一个弱点。

感谢任何帮助。

最佳答案

如果 & 符号是字符实体的一部分,它可以是任何命名实体(不仅仅是 &)、十进制实体或十六进制实体。这应该涵盖它:

re.sub(r'&(?![A-Za-z]+[0-9]*;|#[0-9]+;|#x[0-9a-fA-F]+;)',
r'&', your_string)

关于用于替换文本中未编码的&符号的 Python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8731454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com