这是我尝试在Python上使用正则表达式的第一次尝试,或者根本没有按预期工作。我希望正则表达式匹配任何字母字符或下划线作为第一个字符,然后是任意数量的字母数字字符或下划线。我正在使用的正则表达式是' ^ [a-z_,AZ] [a-z_A-Z0-9] *',它似乎在pythex.org上产生了我想要的东西,但在我的代码中它是匹配我不想要的字符串。
我的代码如下:
isMatch = re.match('^[a-z_A-Z][a-z_A-Z0-9]*', someString)
return True if isMatch else False
匹配我不想要的两个字符串示例是:" qq-q"和" va [r"。我做错了什么?
答案 0 :(得分:0)
我认为您只是忘记了正则表达式末尾的$
来指定字符串的结尾。
isMatch = re.match('^[a-z_A-Z][a-z_A-Z0-9]*$', someString)
如果没有它,它将匹配字符串的开头而不是整个字符串,这解释了为什么它适用于"qq-q"
("qq"
匹配)和"va[r"
({{ 1}}是匹配的。)