我似乎遇到了一些奇怪的python正则表达式行为:
Python版
python -V
Python 2.7.3
系统
uname -a
Linux REVO-VPN-01 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 GNU/Linux
re.Match找到匹配代码
import re
print re.match(r"(|.+)(?P<nums>\d{4})", "some text 2345")
re.Match查找匹配输出
<_sre.SRE_Match object at 0x2fe3690>
re.match找不到任何匹配代码
import re
print re.match(r"(?P<nums>\d{4})", "some text 2345")
re.match找不到任何匹配输出
None
唯一的区别是删除(|。+)本质上是无关紧要的。有人可以解释为什么会这样。我不能为我的生活弄明白。