如何删除python中的下标/上标

2024-06-23 19:10:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些字符串使用下标和上标

在保留我的字符串的同时,我是否可以删除它们

下面是一个例子,¹ºUnless otherwise indicated。如何删除¹º的上标

提前谢谢


Tags: 字符串例子unlessindicatedotherwise
2条回答

唯一可靠的方法是枚举可能出现的所有上标和下标符号,并删除与此集合匹配的字符

如果您的字符串没有那么奇怪,您可以尝试识别“字母其他”和“数字其他”类别,这将包括除超级和下标之外的其他字符。例如:

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之间的所有数字。因此,您可以去掉不在此范围内的任何字符:

>>> x = '¹ºUnless otherwise indicated'
>>> y = ''.join([i for i in x if ord(i) < 128])
>>> y
'Unless otherwise indicated'

这将迭代x的所有字符,排除任何不在ASCII范围内的字符,然后将生成的list字符连接回str

相关问题 更多 >

    热门问题