Regex查找嵌套括号内的子字符串,后跟特定字符串



我正试图从下面的字符串中找到所有顶级的'except'子句。

where (
param1 equals value1
and
param 2 equals valu2
except (
param3 equals value3
where (
param4 equals value4
except (
param6 equals value6
)
)
)
)
except (
param5 equal value5
)

预期结果:

except (
param3 equals value3
where (
param4 equals value4
except (
param6 equals value6
)
)
)

&

except (
param5 equal value5
)

我是regex的新手,我尝试了下面的regex,但它不起作用。除外((?:[^((]+|(?R((+(

演示:https://regex101.com/r/AJZ1MV/1

此正则表达式将您提到但必须改进的情况分组:

(?:(?<=[s])(except (?:.|s)*)(?=except|)))?|(?:(?<=n)(except (?:.|s)*)(?=$|)))

演示:https://regex101.com/r/20RAQV/1

最新更新