1

私は正規表現で本当に苦労しており、文字列検索を行い、正規表現で見つかった値を取得しようとしています。

この時点で、私が望むものを達成するために多くの.indexOf()などを使用して.substring()いますが、かなりコストがかかるようです。

だから、私が欲しいものを説明するために、私は次の部分を知っていると述べることから始めます: subject.replace(/\bwid=([^&]*)/g, "wid=1234");; 文字列を調べてwid=、文字列でそれを見つけ、最初に必要なものに出会うまで、その後にあるものをすべて置き換え&ます。

今私が欲しいのは少し違います、私はこのパターンを持っています: /q=/; これは文字列のどこかにあります。私の値は: ;=の後と前になります。文字列でそのようなものを検索する必要があり、それを置き換える代わりに、そこから値を取得して使用できるようにします。//q=some_value_here/

私は試し/\b!q=/=([^/]*)/ましたが、明らかにうまくいかないので、そこに何かをエスケープして変更する必要があります:)誰か助けてくれますか? そして、正規表現のこの主題について、それを使用する方法に関するいくつかの優れたチュートリアルをどこで見つけることができますか?

編集:文字列の例:http://rgr-ashley.vertica.dk/us/en-us/search#!/q=/test

4

1 に答える 1

2

これを使用してください:

var matches = str.match(/\!\/q=\/([^/]*)/)

値は のインデックス1にありmatchesます。

をエスケープする必要があります( /a/は正規表現リテラルを終了するため) 。!=

于 2013-05-29T10:51:33.960 に答える