为什么下面的正则表达式代码返回逗号(,)

Raj*_*mar 2 python regex python-2.7

请让我知道为什么下面这段代码给出了以下结果

>>> pattern = re.compile(r'[!#$%&()*+-.]')
>>> pattern.findall("a,b")
[',']
Run Code Online (Sandbox Code Playgroud)

re.compile方法中没有逗号(,)符号,但为什么它也匹配逗号?

Den*_*ret 9

[+-.]是+(ASCII 43)到. (ASCII 46)范围内的单个字符.

在这两个字符之间找到,(ASCII 44)和-(ASCII 45).

我想你想要\-而不是-.