python正则表达式中括号的作用,形如 "(w+)s+w+"

先看一个例子:

import re

string="abcdefg  acbdgef  abcdgfe  cadbgfe"

#带括号与不带括号的区别
regex=re.compile("((w+)s+w+)")
print(regex.findall(string))
#输出:[('abcdefg  acbdgef', 'abcdefg'), ('abcdgfe  cadbgfe', 'abcdgfe')]

regex1=re.compile("(w+)s+w+")
print(regex1.findall(string))
#输出:['abcdefg', 'abcdgfe']

regex2=re.compile("w+s+w+")
print(regex2.findall(string))
#输出:['abcdefg  acbdgef', 'abcdgfe  cadbgfe']

第一个 regex 中带有2个括号,我们可以看到其输出是一个list中包含2个tuple。

第二个 regex 中带有1个括号,其输出的内容就是括号匹配到的内容,而不是整个表达式所匹配到的结果。

第三个 regex 中不带有括号,其输出的内容就是整个表达式所匹配到的内容。

findall()返回的是括号所匹配到的结果,多个括号就会返回多个括号分别匹配到的结果,
如果没有括号就返回就返回整条语句所匹配到的结果。

参考链接:http://www.imooc.com/article/302796


注:这个特性是正则表达式特有的,而不仅仅只是python语言。

原文地址:https://www.cnblogs.com/xiaohaodeboke/p/11777984.html