1

私が考えていた...

私が書いているとき(js)

var t="1234ABC4321".match(/.*(ABC).*/)

それは返します:

["1234ABC4321", "ABC"]

, "ABC"]私は部品を交換することができます(?:...)

ただし、グループは : 用backreferenceであるため、後で参照できます\1....

質問 :

一致の一部として「ABC」が返されるのはなぜですか? 後で逆参照するために自分でそれが必要な場合は、fine! しかし、それをのコレクションに保管しないでください!

ロジックはありますか(確かにあると思います)?

4

2 に答える 2

3

あなたの質問を理解しているかどうかはわかりませんが、グループ化すると、最初に取得するグループは、正規表現に一致する文字列全体になります。セカンダリ グループ ( ) を取得したくない場合はABC、ブラケット ((および)) を削除します。これは、これらが正規表現でグループを表すため/.*ABC.*/です1234ABC4321

于 2012-04-05T09:07:32.057 に答える
2

ロジックは、文字列が正規表現と一致するかどうかを match() メソッドがチェックすることです。一致する場合は、正規表現に一致する文字列の一部を返します。() でグループ化を指定すると、グループも返されます。

文字列から ABC を削除する場合は、次を使用します。

var t="1234ABC4321".replace(/ABC/, "");
于 2012-04-05T09:17:35.113 に答える