Skip to main content
 首页 » 编程设计

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

2025年05月04日25bhlsheji

字符串:XXaaaXXbbbXXcccXXdddOO

我想匹配以“XX”开头并以“OO”结尾的最小字符串。

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

>>> str = 'XXaaaXXbbbXXcccXXdddOO' 
>>> re.findall(r'XX.*?OO', str) 
['XXaaaXXbbbXXcccXXdddOO'] 

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

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

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

到现在为止,重点其实不是非贪心,或者说,我眼中的非贪心:左边限定符(XX)和右限定符(OO)。 当然,事实是字符串是从左到右处理的。

请您参考如下方法:

怎么样:

.*(XX.*?OO) 

比赛将在第 1 组进行。