获取最后一次出现直到下一个字符的正则表达式

Regular expression to get last occurence until next char

我正在尝试计算这个正则表达式并卡住了 - 谁能帮忙。

我有一个字符串:

"This is a string with a [flag NO MATCH] that should match [flag THIS] but dont want this [NO NO]"

我想捕获括号中标志的最后一次出现。

试过这个:

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

我快到了,但是这匹配字符串中最后一个“]”之前的所有内容。我怎样才能让它只匹配匹配后的下一个“]”。

想配这个:"THIS"

得到这个:"THIS] but dont want this [NO NO"

希望有人能提供帮助。

谢谢

使*为非贪婪,

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

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

DEMO