Python正则表达式匹配我不想要的字符串

时间:2017-10-13 17:29:10

标签: python regex

这是我尝试在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"。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为您只是忘记了正则表达式末尾的$来指定字符串的结尾。

isMatch = re.match('^[a-z_A-Z][a-z_A-Z0-9]*$', someString)

如果没有它,它将匹配字符串的开头而不是整个字符串,这解释了为什么它适用于"qq-q""qq"匹配)和"va[r"({{ 1}}是匹配的。)