正则表达式以匹配最后一次出现的特定字符串

时间:2015-02-23 22:11:33

标签: regex

任何人都可以告诉我如何匹配两个点之间最接近的模式。例如,我有一个字符串“你好。你好。你好吗。”,说我要提取包括“是”的句子。所以我写了正则表达式“。(。+?are。+?\。)”。但是,我只能得到“你好。你好吗?”而不是“你好吗”。任何人都可以帮助解决问题吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

.(元字符)包括.(字符)。您可以通过排除.字符来获得想要的结果:

\.[^.]*?are[^.]*?\.

Regex101 example

如果您想从匹配中排除第一个句点,请在PCRE中使用{p> (?<=\.)[^.]*?are[^.]*?\.\.\K[^.]*?are[^.]*?\.