正则表达式匹配2个字符串之间最后一次出现

时间:2018-01-03 01:30:15

标签: regex

我有一个这样的字符串:

abcabcdeabc...STRING INSIDE...xyz

我想找到" ... STRING INSIDE ..."所以我使用下面的正则表达式来匹配它:

(?<=abc).*(?=xyz)

问题在于重复&#34; abc&#34;在字符串中,它返回&#34; abcdeabc ... STRING INSIDE ...&#34;但我只想匹配最后一个&#34; abc&#34;和&#34; xyz&#34;。这可能吗?如果是,我怎么能实现这一目标?谢谢。

在这里试试: https://regex101.com/r/gS9Xso/3

2 个答案:

答案 0 :(得分:2)

尝试这种模式:

(a{2,3})*a{2,3}

领先的.*(?<=abc)(.*)(?=xyz) 将消耗所有内容,直到最后.*,然后才会捕获该数字。

Demo

我们也可以尝试使用以下模式:

abc

以下是第二种模式的演示:

Demo

答案 1 :(得分:0)

这应该很好。

[^\d]*abc(\d+)xyz[^\d]*

Debuggex

上查看