gpt4 book ai didi

python - 从python中的字符串中删除控制字符

转载 作者:IT老高 更新时间:2023-10-28 21:46:00 30 4
gpt4 key购买 nike

我目前有以下代码

def removeControlCharacters(line):
i = 0
for c in line:
if (c < chr(32)):
line = line[:i - 1] + line[i+1:]
i += 1
return line

如果要删除多个字符,这将不起作用。

最佳答案

unicode 中有 数百个 控制字符。如果您正在清理来自网络或其他可能包含非 ascii 字符的来源的数据,您将需要 Python 的 unicodedata module . unicodedata.category(…) 函数返回 unicode category code (例如,控制字符、空格、字母等)任何字符。对于控制字符,类别总是以“C”开头。

此代码段从字符串中删除所有控制字符。

import unicodedata
def remove_control_characters(s):
return "".join(ch for ch in s if unicodedata.category(ch)[0]!="C")

unicode categories 的示例:

>>> from unicodedata import category
>>> category('\r') # carriage return --> Cc : control character
'Cc'
>>> category('\0') # null character ---> Cc : control character
'Cc'
>>> category('\t') # tab --------------> Cc : control character
'Cc'
>>> category(' ') # space ------------> Zs : separator, space
'Zs'
>>> category(u'\u200A') # hair space -------> Zs : separator, space
'Zs'
>>> category(u'\u200b') # zero width space -> Cf : control character, formatting
'Cf'
>>> category('A') # letter "A" -------> Lu : letter, uppercase
'Lu'
>>> category(u'\u4e21') # 両 ---------------> Lo : letter, other
'Lo'
>>> category(',') # comma -----------> Po : punctuation
'Po'
>>>

关于python - 从python中的字符串中删除控制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4324790/

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