Python 为什么正则表达式[!@$%^&;*()-\=&&x2B;\\\[{\]};:&&&x27;>;/?`&&x2B;匹配数字?

Python 为什么正则表达式[!@$%^&;*()-\=&&x2B;\\\[{\]};:&&&x27;>;/?`&&x2B;匹配数字?,python,regex,Python,Regex,有人能解释一下下面的结果吗 python 2.7.12 shell的输入 re.match('[!@#$%^&*()-_=+\|\[{\]};:\'<,.>/?~`]+', '2222').group() 我不明白为什么数字与这个表达式匹配。re.match('[!@$%^&*()-\=+\\\\\\[{\]};:\'/?~`+','2222')。group() re.match('[!@#$%^&*()-_=+\|\[{\]};:\'<,.>/?~`]

有人能解释一下下面的结果吗

python 2.7.12 shell的输入

re.match('[!@#$%^&*()-_=+\|\[{\]};:\'<,.>/?~`]+', '2222').group()
我不明白为什么数字与这个表达式匹配。

re.match('[!@$%^&*()-\=+\\\\\\[{\]};:\'/?~`+','2222')。group()
re.match('[!@#$%^&*()-_=+\|\[{\]};:\'<,.>/?~`]+', '2222').group()
#                   ^^^
# ^^^

)-
括号内是一个字符范围,
2
在该范围内。

CNR<代码>属性错误:“非类型”对象没有属性“组”在IDEOne.com上也是一样:转义连字符。啊,这很有意义——这是一个字符集排序顺序的问题,在运行此代码的区域设置中,
2
是否介于
之间@WiktorStribiżew,很好的捕获。@CharlesDuffy:我认为您未能复制它是因为一个
\
没有显示,是因为格式不正确,而不是因为区域设置问题。
re.match('[!@#$%^&*()-_=+\|\[{\]};:\'<,.>/?~`]+', '2222').group()
#                   ^^^