Javascript 正则表达式删除除特殊字符之间的所有括号
Javascript regEx to remove all parentheses except between special characters
我需要一个正则表达式来从字符串中删除所有 (
和 )
,两个 @.
之间的除外
示例:
( [15] == @value 1@ || [15] == @value 2@ ) && ( [5] == @value 3 (ignore these)@ || [5] == @value 4@ ) || ( [2] == @value 5@ )
我需要的字符串:
[15] == @value 1@ || [15] == @value 2@ && [5] == @value 3 (ignore these)@ || [5] == @value 4@ || [2] == @value 5@
我尝试用这个非捕获组用空格分割除了@之间的空格但找不到方法:
(?:@[^@]*@|\S)
我面临着解决这个问题的压力,感谢任何帮助,谢谢。
您可以使用此正则表达式进行匹配:
\s*[()](?=(?:[^@]*@[^@]*@)*[^@]*$)\s*
并替换为空字符串。
正则表达式详细信息:
\s*
:匹配0个或多个空格
[()]
:匹配(
或)
(?=
: 开始正面前瞻
(?:[^@]*@[^@]*@)*
:匹配0对或多对@...@
子串
[^@]*
:除了 @
之外再匹配 0 个
$
:结束
)
: 结束正面前瞻
\s*
:匹配0个或多个空格
我需要一个正则表达式来从字符串中删除所有 (
和 )
,两个 @.
示例:
( [15] == @value 1@ || [15] == @value 2@ ) && ( [5] == @value 3 (ignore these)@ || [5] == @value 4@ ) || ( [2] == @value 5@ )
我需要的字符串:
[15] == @value 1@ || [15] == @value 2@ && [5] == @value 3 (ignore these)@ || [5] == @value 4@ || [2] == @value 5@
我尝试用这个非捕获组用空格分割除了@之间的空格但找不到方法:
(?:@[^@]*@|\S)
我面临着解决这个问题的压力,感谢任何帮助,谢谢。
您可以使用此正则表达式进行匹配:
\s*[()](?=(?:[^@]*@[^@]*@)*[^@]*$)\s*
并替换为空字符串。
正则表达式详细信息:
\s*
:匹配0个或多个空格[()]
:匹配(
或)
(?=
: 开始正面前瞻(?:[^@]*@[^@]*@)*
:匹配0对或多对@...@
子串[^@]*
:除了@
之外再匹配 0 个
$
:结束
)
: 结束正面前瞻\s*
:匹配0个或多个空格