向Python unicode strip添加字符?

2024-06-17 12:59:24 发布

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

我想从strip中删除尾随空格和其他一些字符。下面是输入/输出示例(明确标记的制表符和换行符):

Input:
"\t [[  dwarf ]]]   \n"

Output:
"dwarf"

理论上我可以这样解决我的问题:

x = x.strip().strip("[]").strip().strip("[]")

这将耗尽数据库中可能发生的所有组合;但是,如果有更多级别的方括号和空格,我仍然需要更改代码。我可以用循环来解决这个问题,但这同样是丑陋和低效的。有没有更好的方法,或者告诉strip不要使用整个字符串,而是使用我提供的字符?你知道吗


Tags: 方法代码标记数据库示例inputoutput理论
2条回答

只需调用str.strip一次:

In [6]: import string

In [7]: "\t [[  dwarf ]]]   \n".strip("[]" + string.whitespace)
Out[7]: 'dwarf'

^{}是包含所有(ascii)空格字符的字符串。S.strip("[]" + string.whitespace)将剥离[]和空格字符的所有组合。你知道吗

这是一个支持UNICODE的regex版本。你知道吗

>>> import re
>>> st = "\t [[  dwarf ]]]   \n"
>>> re.sub(r"\s*\[|\]\s*", "", st, flags=re.UNICODE).strip()
'dwarf'

比上一个稍微优雅一点的正则表达式(使用ur来处理UNICODE正则表达式模式):

>>> re.sub(ur"[ \s*[\] ]+", "", st, flags=re.UNICODE).strip()

相关问题 更多 >