您可以使用正则表达式来完成此任务。为了验证字符串仅包含字母,数字,下划线和破折号,我们可以使用以下正则表达式:“ ^ [A-Za-z0-9 _-] * $”。
import re print(bool(re.match("^[A-Za-z0-9_-]*$", 'aValidString123--__'))) print(bool(re.match("^[A-Za-z0-9_-]*$", 'inv@lid')))
输出结果
True False
您也可以通过Sets获得此结果。使用您要允许的字符声明一组并使用以下代码-
from sets import Set allowed_chars = Set('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-') validationString = 'inv@lid' if Set(validationString).issubset(allowed_chars): print True else: print False
输出结果
这会给你结果-
False