您可以使用正则表达式来完成此任务。为了验证字符串仅包含字母,数字,下划线和破折号,我们可以使用以下正则表达式:“ ^ [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