我的问题非常简单,我正在尝试从字符串中去除任何不是A-Z或0-9的字符。
基本上,这是我正在尝试执行的过程:
whitelist=['a',...'z', '0',...'9']
name = '_abcd!?123'
name.strip(whitelist)
print(name)
>>> abcd123
重要的是要知道我不能仅仅打印名称中的有效字符。 我需要实际使用变量的更改状态。
我的问题非常简单,我正在尝试从字符串中去除任何不是A-Z或0-9的字符。
基本上,这是我正在尝试执行的过程:
whitelist=['a',...'z', '0',...'9']
name = '_abcd!?123'
name.strip(whitelist)
print(name)
>>> abcd123
re.sub
并提供准确匹配你想要删除的内容的模式:import re
result = re.sub('[^a-zA-Z0-9]', '', '_abcd!?123')
输出:
'abcd123'
使用列表推导式与string
模块
import string
whitelist = set(string.ascii_lowercase + string.digits)
name = ''.join(c for c in name if c in whitelist)
re
或regex
,以下是更好的方法。 - Muneeb Ahmad Khurram你可以使用简单的正则表达式:
new_string = re.sub('[chars to remove]', '', old_string)
[^ ]
语法是正则表达式中的否定范围。 - wisbucky