在mix unicodeascii字符串中用空格填充ascii字符

2024-06-18 11:11:22 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个unicode和ascii字符的混合字符串,例如:

它看灵魂塑Nike造得和学问同等重要。

目标是用空格填充ascii子字符串,即:

^{pr2}$

我尝试过使用([^[:ascii:]])正则表达式,它在匹配子字符串方面看起来很好,例如https://regex101.com/r/FVHhU1/1

但是在代码中,用' \1 '替换并没有达到预期的输出。在

>>> import re
>>> patt = re.compile('([^[:ascii:]])')
>>> s = u'它看灵魂塑Nike造得和学问同等重要。'
>>> print (patt.sub(' \1 ', s))
它看灵魂塑Nike造得和学问同等重要。

如何在ascii字符中混合使用ascii空格?


Tags: 字符串httpsrecom目标asciiunicode字符
1条回答
网友
1楼 · 发布于 2024-06-18 11:11:22

模式应为:

([\x00-\x7f]+)

因此您可以使用:

^{pr2}$

这将产生:

>>> print(patt.sub(r' \1 ',s))
它看灵魂塑 Nike 造得和学问同等重要。

ASCII定义为一个字符范围,十六进制代码介于007f之间。因此,我们定义这样一个范围[\x00-\x7f],使用+表示一个或多个,并用r' \1 '替换匹配组来添加两个空格。在

相关问题 更多 >