仅选择具有外支撑的内支撑的正则表达式

Regex for selecting inner brace only which has outer brace

本文关键字:正则表达式 选择      更新时间:2023-09-26

这是文本

[中期审查[s]]是g[iv]en [by m[a]in head]和[没有人[lse]有权]访问

正则表达式的格式必须为

[Interim Review [s]] are g[iv]en [by m [a] in head] and [no one e [lse has] th]e access

你可以看到有外括号的内括号必须突出显示。只有一个括号而没有外括号的不能突出显示。从问题给出的格式中可以看出,in [iv]en [iv]不能突出显示,因为它没有外括号。但在[Interim Review[s]]中,[s]必须突出显示,在[by m[a]in head]中,[a]必须突出显示,在[no one e[lse has]中,[lse has]必须突出显示。

我已经尝试了正则表达式[[^[]]*],您可以在https://regex101.com/r/xR0wM3/5中看到,但它选择的括号也没有外括号。这不是必需的输出

 '[[^[']]*'](?=[^'[]*'])

添加lookahead。看到演示。

https://regex101.com/r/xR0wM3/8

你可以试试'[[^'[]+?]

您可能想使用一个捕获组:

'[[^'[']]*('[[^'[']]*'])[^'[']]*']