gpt4 book ai didi

python - 当字符落在 unicode 范围之间时如何用空格填充字符?

转载 作者:太空宇宙 更新时间:2023-11-04 02:39:17 25 4
gpt4 key购买 nike

目标是在满足 issubset 条件时用空格填充字符,例如

[在]:

subset = [chr(ordinal) for ordinal in range(ord(u'\u31c0'), ord(u'\u31ef'))]

text = '这是个小㇈㇋伙子'

[输出]:

output_text = '这是个小 ㇈ ㇋ 伙子'

我可以这样做:

def issubset(uchar):
if u'\u31c0' <= uchar <= u'\u31ef':
return True
return False

def pad_space_ifsubset(text):
output = ""
for ch in text:
if issubset(ch):
output += " " + ch + " "
else:
output += ch
return output

text = '这是个小㇈㇋伙子'

pad_space_ifsubset(text)

但是有没有更简单的方法来做到这一点?也许用正则表达式?

最佳答案

您可以使用 re.sub 在感兴趣的代码点上使用范围模式,并在替换字符串中使用组反向引用(\g<0> 将替换匹配的整个子字符串,或者在这种情况下,替换范围中的单个字符):

import re

def pad_space_ifsubset(text):
return re.sub(u'[\u31c0-\u31ef]', ' \g<0> ', text)

例如:

>>> text = u'这是个小㇈㇋伙子'
>>> print pad_space_ifsubset(text)
这是个小 ㇈ ㇋ 伙子

关于python - 当字符落在 unicode 范围之间时如何用空格填充字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47006311/

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