import re
text = "aoooooooabbbboooooaabaabay1111"
find_arr = re.findall(r".*(a.*a).*", text)
find_arr2 = re.findall(r"aa", text)
print(find_arr)
print(find_arr2)
输出:
['aba']
['aa', 'aa']
为什么find_arr2可以匹配到text文本的所有的相关项,
而find_arr只匹配到了text最后一个相关项?
aoooooooa和aa不也符合find_arr正则吗,
我理解的贪婪模式应该aoooooooabbbboooooaabaaba都能匹配到,
不知道是哪里理解有问题?
.*(a.*a).*
第一个.*
就是贪婪匹配所以
.*
实际匹配aoooooooabbbboooooaaba
而(a.*a)
实际匹配的是最后面的3个字母aba
你想要的要改成
.*?(a.*a).*?