正则表达式 - 提取双方括号之间的内容

Regex - extract content between double square brackets

我有以下字符串:

[[ id1={{TEXT1}} ]] [[ id2={{TEXT2}} ]] [[ id3={{TEXT3}} ]]

我想匹配双方括号内的内容,只使用{{TEXT3}}。 我试过这个:

\[\[(.*?)({{TEXT3}})(.*?)\]\]

但它也匹配从头开始匹配方括号

想要的结果只有:

id3={{TEXT3}}

替换第一个 .?与 (?:(?![[].)?解决了我的问题。 非常感谢@WiktorStribiżew

.*\[\[ (.*{{TEXT3}}) \]\]

screenshot

解释:
.* 任何东西
\[\[ 直到 [[
(.*{{TEXT3}}) 捕获([[ ]] 之间的所有内容)
\]\] 比赛结束 ]]

你的正则表达式有 .* 在 [[ 而不是外面,所以它匹配它找到的第一个 [[。