
关于python的re正则模块
>>>m=re.match("([abc])+","abc")>>>m.groups()这个输出的是('c',)这个有点无法理解啊。为什么第一捕获组会是c,[abc]不是...
>>> m = re.match("([abc])+", "abc")
>>> m.groups()
这个输出的是
('c',)
这个有点无法理解啊。
为什么第一捕获组会是c,[abc]不是匹配a or b or c么 。为啥独独会是c 展开
>>> m.groups()
这个输出的是
('c',)
这个有点无法理解啊。
为什么第一捕获组会是c,[abc]不是匹配a or b or c么 。为啥独独会是c 展开
2个回答
展开全部
你的括号位置错误了一点儿。我自己也是试了几次才明白。
这样写就对了。
m = re.match("([abc]+)", "abc")
你的括号只包括了一个字符,而不是所有的字符。所以结果是c,或者是a都有可能。当然c可能性更大些。只有将+号包括进去后才会得到abc。
至于为什么是C,因为你括号取的是一组字符中的一个,按正则的规则,它会顺序取。当然寄存器里保存的是最后一个字符,这样效率最高。
这样写就对了。
m = re.match("([abc]+)", "abc")
你的括号只包括了一个字符,而不是所有的字符。所以结果是c,或者是a都有可能。当然c可能性更大些。只有将+号包括进去后才会得到abc。
至于为什么是C,因为你括号取的是一组字符中的一个,按正则的规则,它会顺序取。当然寄存器里保存的是最后一个字符,这样效率最高。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询