我尝试了在JavaScript中使用正则表达式来逃避括号的不同方法,但我仍然无法使其工作。
这是字符串:
"abc(blah (blah) blah()...).def(blah() (blah).. () ...)"
我想要检测到它:
abc().def()
使用此代码,它返回false。
str.match(/abc\([^)]*\)\.def\([^)]*\)/i);
你能告诉我为什么我的正则表达式不起作用吗?
答案 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
并添加一个结束括号.. 我能想到的最简单的解决方案.. 希望它有所帮助..