2024-06-23 19:10:46 发布
网友
我有一些字符串使用下标和上标
在保留我的字符串的同时,我是否可以删除它们
下面是一个例子,¹ºUnless otherwise indicated。如何删除¹º的上标
¹ºUnless otherwise indicated
¹º
提前谢谢
唯一可靠的方法是枚举可能出现的所有上标和下标符号,并删除与此集合匹配的字符
如果您的字符串没有那么奇怪,您可以尝试识别“字母其他”和“数字其他”类别,这将包括除超级和下标之外的其他字符。例如:
import unicodedata s = "¹ºUnless otherwise indicated" cleaned = "".join(c for c in s if unicodedata.category(c) not in ["No", "Lo"])
ASCII字符的序数值(下标/上标字符不在ASCIItable中)在range(128)中。请注意range(128)排除了范围的上限(如果未提供下限,则假定0为下限),因此这将映射到0-127之间的所有数字。因此,您可以去掉不在此范围内的任何字符:
range(128)
>>> x = '¹ºUnless otherwise indicated' >>> y = ''.join([i for i in x if ord(i) < 128]) >>> y 'Unless otherwise indicated'
这将迭代x的所有字符,排除任何不在ASCII范围内的字符,然后将生成的list字符连接回str
x
list
str
唯一可靠的方法是枚举可能出现的所有上标和下标符号,并删除与此集合匹配的字符
如果您的字符串没有那么奇怪,您可以尝试识别“字母其他”和“数字其他”类别,这将包括除超级和下标之外的其他字符。例如:
ASCII字符的序数值(下标/上标字符不在ASCIItable中)在
range(128)
中。请注意range(128)
排除了范围的上限(如果未提供下限,则假定0为下限),因此这将映射到0-127之间的所有数字。因此,您可以去掉不在此范围内的任何字符:这将迭代
x
的所有字符,排除任何不在ASCII范围内的字符,然后将生成的list
字符连接回str
相关问题 更多 >
编程相关推荐