gpt4 book ai didi

Python:将 re.sub 用于编码为 &#number; 的 ascii 数字

转载 作者:行者123 更新时间:2023-11-28 21:19:53 24 4
gpt4 key购买 nike

我有一段文字,里面有一些奇怪的字符。例如,可能会出现“éxâmplë”这个词。但它不是这样显示的,而是显示为&#130;x&#131;mpl&#137;。 .幸运的是,这些数字是 ASCII 编码的,所以我可以使用 chr()为了那个原因。所以,我想替换 &#<number>;通过 chr(number) .

我开始使用 re模块,但由于我没有那么丰富的经验,所以我不知道该怎么做。下面是我的尝试,当然,代码会尝试转换 int()在执行 re.sub() 之前将其部分化为 int部分,提高一个ValueError .我怎样才能正确地做到这一点?

sentence = "This is an &#130;x&#131;mpl&#137;."
chrpatt = "&#([0-9]{3});"
sentence = re.sub(chrpatt, chr(int("\g<1>")), sentence)
print sentence

最佳答案

这里不需要使用正则表达式。

有一个名为 HTMlParser 的完整库。

示例:

>>> import HTMLParser
>>> h = HTMLParser.HTMLParser()
>>> h.unescape("This is an &#130;x&#131;mpl&#137;.")
u'This is an \x82x\x83mpl\x89.'

以防万一之前不清楚:

>>> chr(130)
'\x82'
>>> chr(131)
'\x83'
>>> chr(137)
'\x89'

不要重新发明轮子

关于Python:将 re.sub 用于编码为 &#number; 的 ascii 数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23781984/

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