gpt4 book ai didi

python - 在属性字符串上强制使用 ASCII 字符的更好方法

转载 作者:行者123 更新时间:2023-12-01 05:02:27 25 4
gpt4 key购买 nike

我有一种方法可以为对象的所有字符串属性剥离非 ASCII[0:126] 中的字符串字符:

def niceEncoding(string):
new = ''
#matches all printable ascii characters (0 to 126)
n = re.compile("[ -~]")
for char in n.findall(string):
new += char
return new

def cleanObjEncodings(obj):
for k, v in vars(obj).items():
if type(v) is str:
setattr(obj, k, niceEncoding(v))
return obj

人们有关于更有效方法的想法吗?

//

选择的改进方法(感谢):

non_printable = re.compile("[^ -~]")

def cleanObjEncodings(obj):
for k, v in vars(obj).items():
if type(v) is str:
setattr(obj, k, non_printable.sub('', v))
return obj

最佳答案

反转正则表达式的含义怎么样?不匹配字符,而是匹配字符并将它们替换为空字符串。

如果将正则表达式的构建分开,代码会变得更加清晰,该正则表达式只需要发生一次。

#matches all except printable ascii characters (32 to 126)
re_non_printable = re.compile("[^ -~]")

def niceEncoding(string):
return re_non_printable.sub("", string)

关于python - 在属性字符串上强制使用 ASCII 字符的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25812481/

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