首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在混合unicode-ascii字符串中填充ascii字符和空格。

在混合unicode-ascii字符串中填充ascii字符和空格。
EN

Stack Overflow用户
提问于 2017-07-07 09:11:18
回答 1查看 636关注 0票数 1

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

代码语言:javascript
复制
它看灵魂塑Nike造得和学问同等重要。

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

代码语言:javascript
复制
它看灵魂塑 Nike 造得和学问同等重要。

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

但在代码中,使用' \1 '进行替换并不能实现所需的输出。

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

如何在混合unicode-ascii字符串中填充带有空格的ascii字符?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-07 09:14:28

其模式应是:

代码语言:javascript
复制
([\x00-\x7f]+)

所以你可以使用:

代码语言:javascript
复制
patt = re.compile('([\x00-\x7f]+)')
patt.sub(r' \1 ',s)

这就产生了:

代码语言:javascript
复制
>>> print(patt.sub(r' \1 ',s))
它看灵魂塑 Nike 造得和学问同等重要。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44966911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档