python re中可能存在的错误
我有以下代码:python re中可能存在的错误,python,regex,Python,Regex,我有以下代码: import re r = re.compile(r'[*-/]') print r.match('.') is not None 它打印True,表示“.”与给定的正则表达式匹配,而它不匹配。我是不是在正则表达式中遗漏了一些明显的东西 我正在osx 10.8.2上使用cpython 2.7.3 如果[]集中的三个字符中的任何一个被删除,它就可以工作。使用re.DEBUG编译它 它给出了范围的定义。男人 其中包括一个。因此完全合法。使用re.DEBUG编译它 它给出了范围的定义
import re
r = re.compile(r'[*-/]')
print r.match('.') is not None
它打印True,表示“.”与给定的正则表达式匹配,而它不匹配。我是不是在正则表达式中遗漏了一些明显的东西
我正在osx 10.8.2上使用cpython 2.7.3
如果[]集中的三个字符中的任何一个被删除,它就可以工作。使用re.DEBUG编译它
它给出了范围的定义。男人
其中包括一个。因此完全合法。使用re.DEBUG编译它
它给出了范围的定义。男人
其中包括一个。因此完全合法。当你写以下内容时
r = re.compile(r'[*-/]')
使用-实际上意味着匹配*和/之间的任何字符。如果您查看ascii表
* 42
+ 43
, 44
- 45
. 46
/ 47
这就是为什么它与。性格您当前的正则表达式也将匹配
>>> print r.match('+')
<_sre.SRE_Match object at 0x100483370>
>>> print r.match(',')
<_sre.SRE_Match object at 0x100483370>
那你就找不到匹配的
当你写以下内容时
r = re.compile(r'[*-/]')
使用-实际上意味着匹配*和/之间的任何字符。如果您查看ascii表
* 42
+ 43
, 44
- 45
. 46
/ 47
这就是为什么它与。性格您当前的正则表达式也将匹配
>>> print r.match('+')
<_sre.SRE_Match object at 0x100483370>
>>> print r.match(',')
<_sre.SRE_Match object at 0x100483370>
那你就找不到匹配的
特殊字符在集合中失去了意义:特殊字符在集合中失去了意义:你也可以把-last:r'[*/-]'放在那些一旦被指出就显而易见的地方。谢谢你也可以把-last:r'[*/-]'放在那些一旦被指出就显而易见的地方。谢谢
>>> print r.match('.') is not None
False