我嘗試了不同的方法來在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
,並添加一個右括號.. 我能想到的最簡單的解決方案.. 希望它有幫助..
你確定嗎?它爲我返回'[「abc(blah等等).def(等等等等)」]'''。 – Blender 2012-04-26 03:40:46
對不起,我剛剛編輯過這篇文章。基本上它嵌套括號。 – RoundOutTooSoon 2012-04-26 03:42:58
你是什麼意思,你想它「被檢測」?你的意思是你想拉出'abc()。def()'文本並用它做些什麼?或者你只是想讓你的正則表達式匹配「abc(blah(blah)... etc」字符串? – alan 2012-04-26 03:52:56