为什么 python 正则表达式匹配函数匹配那个特殊字符?

Why python regex match function matches that special character?

我有正则表达式模式 "^[a-zA-z0-9]+$" 据我了解,它应该描述一个词或类似的东西。 我尝试验证 "counter":

这样的字符串
re.match("^[a-zA-z0-9]+$", "counter")
# Result: <_sre.SRE_Match object at 0x000000AA2053C578> # 

如果我有像 "/" 这样的特殊字符,它将不匹配(returns 没有)。

re.match("^[a-zA-z0-9]+$"), "coun/ter")

但如果我尝试这样做:

re.match("^[a-zA-z0-9]+$", "coun[ter")
# Result: <_sre.SRE_Match object at 0x000000AA2053C440> # 

再次匹配,我不明白为什么?

你的正则表达式应该是:

re.match('^[a-zA-Z0-9]+$', "coun[ter")

没有

re.match('^[a-zA-z0-9]+$', "coun[ter")

当你有 A-z 时,它会捕获从 A (ASCII 65) 到 z (122) 的所有内容,并且也匹配 [ (91)。