关于组还是不太理解 求教
来源:10-9 组
Angle_飘
2018-07-11
为什么('q{3}',s)和("(q){3}",s)打印结果不一样
组到底该怎么理解 请教老师
写回答
1回答
-
JaydenJune
2018-07-17
import re """ 你好,根据你的问题,本人一点想法,如有错误请批评指教. 在课上老师举例re.findall(life(.*)python,"life is short,i use python") 输出结果[' is short,i use '],可见输出结果是匹配一对圆括号正则表达式的内容, 其他非匹配的内容省略. (.*)对应[' is short,i use '] 再看你的代码,r1 = re.findall("q{3}", s)不用过多解释大家都知道. 针对r2 = re.findall("(q){3}", s)举例说明一下. """ # 输出结果: # q{3} : ['qqq', 'qqq'] # (q){3} : ['q', 'q'] # 根据(.*)对应[' is short,i use '],所以(q)对应'q'至于为什么是两个'q',看下面举例 s1 = "qqqqqq" r1_1 = re.findall("q{3}", s1) r1_2 = re.findall(r"(q){3}", s1) print(r"q{3} : ", r1_1) print(r"(q){3} : ", r1_2) # 输出结果:AA # q{3} : [] # (q){3} : [] s2 = "qrrquyquyqwwqssq" r2_1 = re.findall("q{3}", s2) r2_2 = re.findall("(q){3}", s2) print(r"q{3} : ", r2_1) print(r"(q){3} : ", r2_2) # 输出结果:BB # q{3} : ['qqq'] # (q){3} : ['q'] s3 = "qrrquyquyqqq" r3_1 = re.findall("q{3}", s3) r3_2 = re.findall("(q){3}", s3) print(r"q{3} : ", r3_1) print(r"(q){3} : ", r3_2) """ 综上输出结果:AA和BB得出个人结论 当python系遇见正则表达式(q){3},首先python系统会先匹配正则表达式"q{3}", 在字符串中是否有匹配"qqq"的内容,如果有再匹配一对圆括号正则表达式(q), 最后将其结果输出.反之字符串没有匹配"qqq"的内容,(q)的匹配也就不存在,返回空列表 希望对你有帮助 """
10
相似问题