代码: 全选
import re
m = re.match("([abc]+)", "abc") #第2句
m.groups()
请问为什么是这样呢?
如果把第2句改为 m = re.match("([abc+])", "abc")
那么输出是:('abc',)
这又是为什么呢?
再者,如果把第2句改为 m = re.match("([acb])+", "abc")
输出依然是:('c', )
我的疑问是,这个正则表达式到底是如何匹配的,为什么每次匹配的只有一个字母,并且是最大的那个呢?
代码: 全选
import re
m = re.match("([abc]+)", "abc") #第2句
m.groups()
代码: 全选
>>> m=re.match('([abc]+)','abc')
>>> m.groups()
('abc',)
真不是我弄错了。。。Kabie 写了:你肯定弄错了。。。代码: 全选
>>> m=re.match('([abc]+)','abc') >>> m.groups() ('abc',)
代码: 全选
>>> m = re.match('([abc]+)','abc')
>>> m.groups()
('abc',)
>>>
代码: 全选
cuihao@cuihao-arch /tmp $ python
Python 3.2.1 (default, Jul 11 2011, 12:37:47)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> m = re.match("([abc]+)", "abc")
>>> m.groups()
('abc',)
>>>
代码: 全选
cuihao@cuihao-arch /tmp $ python2
Python 2.7.2 (default, Jun 29 2011, 11:10:00)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> m = re.match("([abc]+)", "abc")
>>> m.groups()
('abc',)
>>>