gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:13 25 4
gpt4 key购买 nike


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

sentence one foo sentence two foo   sentence three foo    sentence four foo   sentence five

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

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

.*(sentence two.*  ).*(sentence four.*  )

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

中的“sentence four foo”

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

我尝试过:

.*(sentence two.*)(  )?.*(sentence four.*)(  )?

并采用group(1)group(3),但似乎没有任何区别...
非常感谢任何帮助。

谢谢
/安德里亚

最佳答案

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

/(sentence two.*?)  .*(sentence four.*?)/

(因为你想在遇到双空格之前匹配尽可能短的文本量)

关于Python正则表达式,如何匹配句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22657863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com