У меня есть регулярное выражение, которое захватывает три обратные ссылки, хотя одна (вторая) может быть 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
Я хочу зафиксировать TLD (в данном случае .co.uk), q
param и cd
param.
Я использую следующий RegEx:
/.*\.google([a-z\.]*).*q=(.*[^&])?.*cd=(\d*).*/i
Что работает, за исключением того, что вторая обратная ссылка включает другие параметры до параметра cd
, я сейчас получаю это:
["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
. Я хочу, чтобы вторая обратная ссылка была либо нулевой (или неопределенной, или что-то еще), либо просто параметром q
, в этом примере site%3Ajonathonoat.es
. В настоящее время он также включает параметр source
(site%3Ajonathonoat.es&source=web
).
Любая помощь будет принята с благодарностью, спасибо!
Я добавил JSFiddle кода, посмотрите результат в консоли браузера, спасибо !