3 つの後方参照をキャプチャする正規表現がありますが、1 つ (2 つ目) はnull
.
流れる文字列を考えると:
http://www.google.co.uk/url?sa=t&rct=j&q=site%3Ajonathonoat.es&source=web&cd=1&ved=0CC8QFjAA&url=http%3A%2F%2Fjonathonoat.es%2Fbritish-mozcast%2F&ei=MQj9UKejDYeS0QWruIHgDA&usg=AFQjCNHy1cDoWlIAwyj76wjiM6f2Rpd74w&bvm=bv.41248874,d.d2k,.co.uk,site%3Ajonathonoat.es&source=web,1
q
TLD (この場合は .co.uk)、 param、およびparamを取得したいと考えていcd
ます。
次の正規表現を使用しています。
/.*\.google([a-z\.]*).*q=(.*[^&])?.*cd=(\d*).*/i
cd
2番目の後方参照にparamまでの他のパラメーターが含まれていることを除いて、これは機能します。現在、これを取得しています:
["http://www.google.co.uk/url?sa=t&rct=j&q=site%3Ajo…,d.d2k,.co.uk,site%3Ajonathonoat.es&source=web,1 ", ".co.uk", "site%3Ajonathonoat.es&source=web", "1", index: 0, input: "http://www.google.co.uk/url?sa=t&rct=j&q=site%3Ajo…,d.d2k,.co.uk,site%3Ajonathonoat.es&source=web,1"]
1 番目の後方参照は正しく、.co.uk
3 番目も同様です。です1
。この例では、2番目の後方参照をnull(または未定義など)にするか、単なるq
パラメータにする必要がありsite%3Ajonathonoat.es
ます。現在、source
パラメーターも含まれています(site%3Ajonathonoat.es&source=web
)。
どんな助けでも大歓迎です、ありがとう!
コードの JSFiddle を追加しました。ブラウザ コンソールで出力を確認してください。