14

JavaScript で正規表現を使用して括弧をエスケープするさまざまな方法を試しましたが、まだ機能しません。

これは文字列です:

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

これを検出したい:

abc().def() 

このコードを使用すると、false が返されます。

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

正規表現が機能しない理由を教えてください。

4

2 に答える 2

12

この正規表現は、指定した文字列と一致します。

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

そして、後方参照を使用する$1$2$3と生成されますabc().def()

または、後方参照が必要ない場合は、これを使用してください。

abc\(.+\)\.def\(.+\)
于 2012-04-26T03:57:21.323 に答える
0

K.ここにアイデアがあります...

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

このように正規表現を使用します

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

それは一致します

abc(

次に使用する

var regExp2 = /\)\./

それは一致します

")." 

文字列で..

次に、実際の文字列を分割して、

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

正規表現が見つからなくなるまで繰り返します

regExp2 

閉じ括弧を追加します..私が考えることができる最も簡単な解決策..それが役立つことを願っています..

于 2012-04-26T04:08:22.940 に答える