我的问题很简单,我试图从字符串中去掉任何非A-Z或0-9的字符。
基本上这就是我要做的过程:
whitelist=['a',...'z', '0',...'9'] name = '_abcd!?123' name.strip(whitelist) print(name) >>> abcd123
重要的是要知道,我不能只在名字中打印有效字符。我需要在变量改变的状态下使用它。
您可以使用简单的正则表达式:
new_string = re.sub('[chars to remove]', '', old_string)
请注意字符串是不可变的。您需要分配一个新变量才能更改一个。
使用 string 有列表理解
string
import string whitelist = set(string.ascii_lowercase + string.digits) name = ''.join(c for c in name if c in whitelist)
你可以用 re.sub 并提供与要删除的内容完全匹配的模式:
re.sub
import re result = re.sub('[^a-zA-Z0-9]', '', '_abcd!?123')
输出:
'abcd123'