我尝试了不同的方法来使用 JavaScript 中的正则表达式来转义括号,但我仍然无法使其工作。
这是字符串:
"abc(blah (blah) blah()...).def(blah() (blah).. () ...)"
我希望检测到这一点:
abc().def()
使用此代码,它返回 false。
str.match(/abc\([^)]*\)\.def\([^)]*\)/i);
你能告诉我为什么我的正则表达式不起作用吗?
我尝试了不同的方法来使用 JavaScript 中的正则表达式来转义括号,但我仍然无法使其工作。
这是字符串:
"abc(blah (blah) blah()...).def(blah() (blah).. () ...)"
我希望检测到这一点:
abc().def()
使用此代码,它返回 false。
str.match(/abc\([^)]*\)\.def\([^)]*\)/i);
你能告诉我为什么我的正则表达式不起作用吗?
此正则表达式将匹配您提供的字符串:
(abc\().+(\)\.def\().+(\))
并且使用反向引用$1$2$3
会产生abc().def()
或者如果您不想要反向引用,请使用它:
abc\(.+\)\.def\(.+\)
K...这是一个想法...
abc(blah (blah) blah()).def(blah() (blah).blah())
像这样使用正则表达式
var regExp1 = \^([a-z])*\(\ig;
它会匹配
abc(
然后使用
var regExp2 = /\)\./
它会匹配
")."
在字符串..
然后拆分实际的字符串,使其变为
def(blah() (blah).blah())
重复直到正则表达式找不到
regExp2
并添加一个右括号..我能想到的最简单的解决方案..希望它有所帮助..