【发布时间】:2017-05-03 11:00:40
【问题描述】:
我正在创建如下的正则表达式:
import re
asd = re.compile(r"(blah){2}")
mo = asd.search("blahblahblahblahblahblah ll2l 21HeHeHeHeHeHe lllo")
mo1 = asd.findall("blahblahblahblahblahblah")
print(mo.group())
print("findall output: ", mo1)
这将返回输出 废话 findall 输出:['blah', 'blah', 'blah']
-为什么 findall 输出匹配 'blah' 3 次,而其指定的 {2} 次仅在模式中?
如果我更改为 {4},则查找所有匹配项:
asd = re.compile(r"(blah){4}")
findall output: ['blah']
-re.search 和 re.findall 如何处理 {m}?
非常感谢。
【问题讨论】:
-
blahblah、blahblah和blahblah。三场比赛。每个capturesblah. -
我想你也想告诉正则表达式引擎也只返回两个值,对吧?然后,您不需要限制量词:使用 re.findall 获取结果并使用它们的索引获取必要的项目。