Javascript 用于在嵌套大括号内获取值的正则表达式

Javascript 用于在嵌套大括号内获取值的正则表达式,javascript,regex,Javascript,Regex,下面是我正在使用的字符串 (((Thermal) WN RR) AND ((Energy) SS AB)), Text only 以上文本需要转换为 Thermal AND Energy 如何做到这一点。这应该是通用的,如果值为 ((Thermal) WN TR) ((Thermal) WN RR) AND ((Energy) SS AB) OR ((Thermal) WN RR) 任何帮助都将不胜感激。提前谢谢 解决方案: 感谢@spOOm使用他的正则表达式,下面是我用来解决这个问题的代

下面是我正在使用的字符串

(((Thermal) WN RR) AND ((Energy) SS AB)), Text only
以上文本需要转换为

Thermal AND Energy
如何做到这一点。这应该是通用的,如果值为

((Thermal) WN TR)
((Thermal) WN RR) AND ((Energy) SS AB) OR ((Thermal) WN RR)
任何帮助都将不胜感激。提前谢谢

解决方案: 感谢@spOOm使用他的正则表达式,下面是我用来解决这个问题的代码

q = <Query String>
q =     q.substring(0, q.lastIndexOf(')')+1);
q =     q.replace(/\(\(([^()]+)\)(?: [^()]+)+\)/g, "$1");
q=
q=q.substring(0,q.lastIndexOf('))+1);
q=q.replace(/\([^()]+)\(?:[^()]+)+\)/g,“$1”);

第一次安装可以由Regex完成,但我不是Regex的专业人士。谢谢大家。

你不能用正则表达式来做这件事,因为我相信你说的是任意嵌套的大括号

你不能用正则表达式来做这件事,因为我相信你说的是任意嵌套的大括号

你不能用正则表达式来做这件事,因为我相信你说的是任意嵌套的大括号

你不能用正则表达式来做这件事,因为我相信你说的是任意嵌套的大括号

我知道您需要最内部的值,请使用此模式

\(([^()]+)\)


我知道你想要最内在的值,使用这个模式

\(([^()]+)\)


我知道你想要最内在的值,使用这个模式

\(([^()]+)\)


我知道你想要最内在的值,使用这个模式

\(([^()]+)\)

\(\([^()]+)\(?:[A-Z]+)+\)
替换为
$1
可能适合您的需要:

可视化


在JavaScript中:

var output=input.replace(/\(([^()])+)\(?:[A-Z]+)+\)/g,“$1”);
$1替换
\([^()]+)\(?:[A-Z]+)+\)
可能适合您的需要:

可视化


在JavaScript中:

var output=input.replace(/\(([^()])+)\(?:[A-Z]+)+\)/g,“$1”);
$1替换
\([^()]+)\(?:[A-Z]+)+\)
可能适合您的需要:

可视化


在JavaScript中:

var output=input.replace(/\(([^()])+)\(?:[A-Z]+)+\)/g,“$1”);
$1替换
\([^()]+)\(?:[A-Z]+)+\)
可能适合您的需要:

可视化


在JavaScript中:

var output=input.replace(/\(([^()])+)\(?:[A-Z]+)+\)/g,“$1”);

我不确定我是否正确理解了您的问题,但如果您想在嵌套大括号中获取最里面的值,可以使用以下方法:

/\(((?:(?>[^\(]))*?)\)/g
/\(((?:(?>[^\(]))*?)\)|\)((?:(?>[^\)]))*?)\(/g
它将捕获介于“(”和“)”之间的所有字符,条件是其间没有其他“(”字符

在上一个示例中,它将捕获

热能热能

编辑

如果还需要在嵌套大括号外进行匹配,可以使用以下方法:

/\(((?:(?>[^\(]))*?)\)/g
/\(((?:(?>[^\(]))*?)\)|\)((?:(?>[^\)]))*?)\(/g
我刚刚添加了相同的正则表达式,将大括号反转

在上一个示例中,它将匹配

热能、热能、热能和能量或热能


我不确定我是否正确理解了您的问题,但如果您想在嵌套大括号中获取最里面的值,可以使用以下方法:

/\(((?:(?>[^\(]))*?)\)/g
/\(((?:(?>[^\(]))*?)\)|\)((?:(?>[^\)]))*?)\(/g
它将捕获介于“(”和“)”之间的所有字符,条件是其间没有其他“(”字符

在上一个示例中,它将捕获

热能热能

编辑

如果还需要在嵌套大括号外进行匹配,可以使用以下方法:

/\(((?:(?>[^\(]))*?)\)/g
/\(((?:(?>[^\(]))*?)\)|\)((?:(?>[^\)]))*?)\(/g
我刚刚添加了相同的正则表达式,将大括号反转

在上一个示例中,它将匹配

热能、热能、热能和能量或热能


我不确定我是否正确理解了您的问题,但如果您想在嵌套大括号中获取最里面的值,可以使用以下方法:

/\(((?:(?>[^\(]))*?)\)/g
/\(((?:(?>[^\(]))*?)\)|\)((?:(?>[^\)]))*?)\(/g
它将捕获介于“(”和“)”之间的所有字符,条件是其间没有其他“(”字符

在上一个示例中,它将捕获

热能热能

编辑

如果还需要在嵌套大括号外进行匹配,可以使用以下方法:

/\(((?:(?>[^\(]))*?)\)/g
/\(((?:(?>[^\(]))*?)\)|\)((?:(?>[^\)]))*?)\(/g
我刚刚添加了相同的正则表达式,将大括号反转

在上一个示例中,它将匹配

热能、热能、热能和能量或热能


我不确定我是否正确理解了您的问题,但如果您想在嵌套大括号中获取最里面的值,可以使用以下方法:

/\(((?:(?>[^\(]))*?)\)/g
/\(((?:(?>[^\(]))*?)\)|\)((?:(?>[^\)]))*?)\(/g
它将捕获介于“(”和“)”之间的所有字符,条件是其间没有其他“(”字符

在上一个示例中,它将捕获

热能热能

编辑

如果还需要在嵌套大括号外进行匹配,可以使用以下方法:

/\(((?:(?>[^\(]))*?)\)/g
/\(((?:(?>[^\(]))*?)\)|\)((?:(?>[^\)]))*?)\(/g
我刚刚添加了相同的正则表达式,将大括号反转

在上一个示例中,它将匹配

热能、热能、热能和能量或热能


或者您是否有实现此功能的代码……我挣扎了几个小时……)tnx提前..使用Javascript此问题可能比您预期的更难。您正在寻找某种递归解析器。尝试使用提取括号并递归解析它。我们正在进入生成的领域。请查看上面的解决方案。感谢您的帮助。或者您是否有实现此功能的代码..我是s挣扎了几个小时……)tnx提前..使用Javascript此问题可能比您预期的更难。您正在寻找某种递归解析器。尝试使用提取括号并递归解析它。我们正在进入生成的领域。请查看上面的解决方案。感谢您的帮助。或者您是否有实现此功能的代码..我是s挣扎了几个小时……)tnx提前..使用Javascript此问题可能比您预期的更难。您正在寻找某种递归解析器。尝试使用提取括号,并递归解析它。我们正在进入生成的领域。请参阅上面的解决方案。感谢您的帮助。或者您有实现此功能的代码。。