如何匹配最后一次出现的正则表达式?
例如,我如何匹配[XXX]:
data[X][XX][XXX]
其中X,XX,XXX可以随机分配。
我已经尝试使用否定前瞻
\[.*?\](?!.*?\[.*?\])
但是第一个[与最后一个]将匹配不能给出正确结果的东西。
答案 0 :(得分:5)
你得到这样一个结果的原因是.
匹配[
和]
以及除换行符之外的任何其他字符。您可以使用否定的字符类[^][]
替换延迟点:
\[[^][]*\](?!.*?\[[^][]*\])
请参阅regex demo
根据正则表达式的风格,您可能需要在字符类中转义[
和]
(在JS中,]
必须转义([^\][]
)并且您需要同时转义Java / ICU([^\]\[]
)。
答案 1 :(得分:0)