War*_*lax 6 python regex alphanumeric
我查看和搜索,找不到我需要的东西虽然我认为它应该很简单(如果你有任何Python经验,我不这样做).
给定一个字符串,我想在Python中验证它只包含字母数字字符:a-zA-Z0-9和. _ -
例子:
公认:
bill-gates
Steve_Jobs
Micro.soft
被拒绝:
Bill gates - 不允许空格
me@host.com - @不是字母数字
我正在尝试使用:
if re.match("^[a-zA-Z0-9_.-]+$", username) == True:
但这似乎没有做到......
Mar*_*off 18
re.match不返回布尔值; 它返回MatchObject匹配或None不匹配.
>>> re.match("^[a-zA-Z0-9_.-]+$", "hello")
<_sre.SRE_Match object at 0xb7600250>
>>> re.match("^[a-zA-Z0-9_.-]+$", " ")
>>> print re.match("^[a-zA-Z0-9_.-]+$", " ")
None
Run Code Online (Sandbox Code Playgroud)
所以,你不应该这样做re.match(...) == True; 相反,你应该检查re.match(...) is not None这种情况,这可以进一步缩短到公正if re.match(...).
切勿使用== True或== False用于比较。许多类型已经有一个 bool 等效项,您应该改用它:
if re.match("^[a-zA-Z0-9_.-]+$", username):
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11652 次 |
| 最近记录: |