正则表达式逃避括号

时间:2012-04-26 03:39:34

标签: javascript regex

我尝试了在JavaScript中使用正则表达式来逃避括号的不同方法,但我仍然无法使其工作。

这是字符串:

"abc(blah (blah) blah()...).def(blah() (blah).. () ...)"

我想要检测到它:

abc().def() 

使用此代码,它返回false。

 str.match(/abc\([^)]*\)\.def\([^)]*\)/i);

你能告诉我为什么我的正则表达式不起作用吗?

2 个答案:

答案 0 :(得分:12)

此正则表达式将匹配您提供的字符串:

(abc\().+(\)\.def\().+(\))

使用反向引用$1$2$3将生成abc().def()

如果您不想要反向引用,请使用此选项:

abc\(.+\)\.def\(.+\)

答案 1 :(得分:0)

K ......这是一个想法......

abc(blah (blah) blah()).def(blah() (blah).blah())

像这样使用regExp

var regExp1 = \^([a-z])*\(\ig;

它会匹配

abc(

然后使用

var regExp2 = /\)\./

它将匹配

")." 
字符串中的

..

然后拆分实际的字符串,使其变为

def(blah() (blah).blah())

重复直到正则表达式找不到

regExp2 

并添加一个结束括号.. 我能想到的最简单的解决方案.. 希望它有所帮助..