正则表达式,匹配最后一个模式

时间:2017-01-04 07:04:21

标签: javascript regex

如何匹配最后一次出现的正则表达式?

例如,我如何匹配[XXX]:

data[X][XX][XXX]

其中X,XX,XXX可以随机分配。

我已经尝试使用否定前瞻

\[.*?\](?!.*?\[.*?\])

但是第一个[与最后一个]将匹配不能给出正确结果的东西。

2 个答案:

答案 0 :(得分:5)

你得到这样一个结果的原因是.匹配[]以及除换行符之外的任何其他字符。您可以使用否定的字符类[^][]替换延迟点:

\[[^][]*\](?!.*?\[[^][]*\])

请参阅regex demo

根据正则表达式的风格,您可能需要在字符类中转义[](在JS中,]必须转义([^\][])并且您需要同时转义Java / ICU([^\]\[])。

答案 1 :(得分:0)

为简单起见,您可以尝试这样做:

.*(\[.*\])

它将与最后一次出现匹配,但会捕获第1组中[anything]的最后一次出现,而不必向前看

Explanation

相关问题