【发布时间】:2019-10-30 21:39:50
【问题描述】:
我有一个想要匹配的简单模式。在这句话中:
great. This is great&great&great. great.
我想只在“这是”之后立即匹配“伟大”的词。所以第一个伟大的将不返回,但接下来的三个必须返回。最后一个不应该。
我的表情是
This is (great&)*?(great)
但这只会返回第一个伟大的。我阅读了有关贪婪和非贪婪模式的信息,当我不必担心“这是”的提前时,它的效果很好。但是这些高级字符检查对我的用例很重要。我将如何获得所需的结果?
我能够做到这一点:
This is (great&){0}(great)
对于第一场比赛,
This is (great&){1}(great)
第二个,依此类推。但这是一个繁琐的解决方案,我认为我遗漏了一些关于非贪婪模式的行为。感谢任何帮助。谢谢!
【问题讨论】:
-
编辑了问题以更准确地反映我的问题。早些时候,关于最后一个“伟大”的条件不存在。
标签: python regex python-3.x regex-greedy