这是我的尝试
def matcher(ex):
if re.match(r'^[\w|\d][A-Za-z0-9_-]+$', ex):
print 'yes'
我的目标是仅匹配满足以下所有内容的提交
-
仅以字母或数字开头,并且
-
仅允许使用字母,空格,短划线,下划线和数字
-
所有结束空格都被剥离
在我的正则表达式中, matcher('__')
被认为是有效的 . 如何修改以实现我真正想要的东西?我相信 \w
也包括下划线 . 但 matcher('_')
不匹配......
1 回答
原始正则表达式中的问题:
|
并不意味着在字符类中交替,它实际上意味着管道字符 .您使用了
+
作为后续字符,即一个或多个字符,因此像'_'
这样的单字符字符串将不匹配 .您在第一个字符中使用了
\w
,它接受了下划线 .