0

文字列「&something = variable&something_else=var2」があるとします

&something =と&を一致させたいので、次のような正規表現を記述します。

/(&something=).*?(&)/

そして、.match()の結果は配列になります:

["&something=variable&", "&something=", "&"]

私は常に開始要素と終了要素を手動で置き換えることでこれを解決しましたが、それらを一致結果にまったく含めない方法はありますか?

4

3 に答える 3

2

間違ったキャプチャグループを使用しています。これを使用する必要があります:

/&something=(.*?)&/

これは、不要なもの(区切り文字)をキャプチャする代わりに、必要なもの(データ)をキャプチャすることを意味します。

于 2012-07-22T04:34:07.917 に答える
1

試合結果に表示されるのを避けることはできませんが、表示方法を変更して、より便利にすることができます。

一致パターンをに変更すると、一致結果配列の/&something=(.+?)&/テスト文字列を使用すると、"&something=variable&something_else=var2"["&something=variable&", "variable"]

最初の要素は常に一致全体ですが、2番目の要素は括弧からキャプチャされた部分になります。これは、一般的にはるかに便利です。

これがお役に立てば幸いです。

于 2012-07-22T04:35:28.813 に答える
-1

文字列から抜け出そうとしている場合はvariable、replace with backreferencesを使用すると、必要なものが得られます。

"&something=variable&something_else=var2".replace(/^.*&something=(.*?)&.*$/, '$1')

あなたにあげる

"variable"
于 2012-07-22T04:45:09.113 に答える