如何将 python 3 中字符串中的字符列入白名单?
How can I whitelist characters from a string in python 3?
我的问题很简单,我想从字符串中去除任何不是 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)
您可以使用简单的正则表达式:
new_string = re.sub('[chars to remove]', '', old_string)
另请注意,字符串是不可变的。您需要分配一个新变量才能更改一个。
我的问题很简单,我想从字符串中去除任何不是 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)
您可以使用简单的正则表达式:
new_string = re.sub('[chars to remove]', '', old_string)
另请注意,字符串是不可变的。您需要分配一个新变量才能更改一个。