Python正则表达式,如何匹配句子

Python正则表达式,如何匹配句子,python,regex,Python,Regex,我试图在以下字符串中匹配“句子二foo”和句子四foo”: 第一句foo第二句foo第三句foo第四句foo第五句 请注意,每个句子可以包含多个空格,但不能包含连续的空格 每个句子与前面和后面的句子至少间隔2个连续空格 我使用以下模式进行匹配: *(第二句。*)。*(第四句。*) 注意两句话后面的双空格。 问题是,正如您所知,由于匹配引擎的贪婪性,它将匹配到第四句末尾的双空格。因此,我的第一个匹配组(1)将超出我的需要,而我的第二个匹配组(2)将为空。我需要的是组(1)中的“句子twofoo”


我试图在以下字符串中匹配“句子二foo”和句子四foo”:

第一句foo第二句foo第三句foo第四句foo第五句

请注意,每个句子可以包含多个空格,但不能包含连续的空格 每个句子与前面和后面的句子至少间隔2个连续空格

我使用以下模式进行匹配:

*(第二句。*)。*(第四句。*)
注意两句话后面的双空格。
问题是,正如您所知,由于匹配引擎的贪婪性,它将匹配到第四句末尾的双空格。因此,我的第一个匹配
组(1)
将超出我的需要,而我的第二个匹配
组(2)
将为空。我需要的是
组(1)
中的“句子twofoo”和
组(2)

我读过关于非贪婪运算符“”的帖子,但我在将其应用于双空间时遇到了问题(顺便说一句,它不一定是双空间,也可以是三、四等)

我试过:

*(第二句*)()?*(第四句*)()?
第(1)组和第(3)组服用

非常感谢您的帮助。

谢谢

/Andrea

非贪婪运算符应应用于抓取句子的部分,而不是双空格:

/(sentence two.*?)  .*(sentence four.*?)/
(因为您希望在遇到双空格之前匹配尽可能短的文本量)