Python非贪婪的正则表达式并不完全符合我的预期

joo*_*nli 2 python regex greedy non-greedy regex-greedy

字符串:XXaaaXXbbbXXcccXXdddOO

我想匹配以 'XX' 开头以 'OO' 结尾最小字符串。

所以我写了非贪婪的reg:r'XX.*?OO'

>>> str = 'XXaaaXXbbbXXcccXXdddOO'
>>> re.findall(r'XX.*?OO', str)
['XXaaaXXbbbXXcccXXdddOO']
Run Code Online (Sandbox Code Playgroud)

我以为它会返回['XXdddOO']但它太“贪婪”了。

然后我知道我一定是弄错了,因为上面的限定符将首先匹配 'XX' 然后显示它是 'non-greedy'。

但我仍然想弄清楚如何直接得到我的结果['XXdddOO']。任何答复表示赞赏。

到目前为止,关键点实际上不是关于 non-greedy ,或者换句话说,它是关于我眼中的 non-greedy:它应该在左限定符(XX?和右限定符()之间匹配尽可能少的字符。 OO).当然事实是字符串是从左到右处理的。