如何检查字符串是否仅包含字母数字字符和短划线?

时间:2012-06-08 07:06:34

标签: python regex string alphanumeric

我正在测试的字符串可以与[\w-]+匹配。我可以测试一个字符串是否符合Python中的字符串,而不是列出不允许的字符并对其进行测试吗?

3 个答案:

答案 0 :(得分:30)

如果要针对正则表达式测试字符串,请使用re

import re
valid = re.match('^[\w-]+$', str) is not None

答案 1 :(得分:6)

Python也有正则表达式:

import re
if re.match('^[\w-]+$', s):
    ...

或者您可以创建允许的字符列表:

from string import ascii_letters
if all(c in ascii_letters+'-' for c in s):
    ...

答案 2 :(得分:1)

要测试字符串是否只包含 字母数字和短划线,我会使用

import re
found_s = re.findall('^[\w-]+$', s)
valid = bool(found_s) and found_s[0] == s