Справка по регулярным выражениям — строки запроса

#regex #query-string

#регулярное выражение #запрос-строка

Вопрос:

Может ли кто-нибудь дать мне регулярное выражение для проверки URL-адреса с помощью строки запроса с 2 параметрами

 http://www.example.com?pid=3amp;sid=4 
  

Я хочу проверить, соответствует ли ввод указанному выше URL с точными параметрами, как мне написать регулярное выражение для этого

Заранее спасибо!

Комментарии:

1. Просто сравнить две строки? Зачем вам нужно регулярное выражение для точного соответствия?

Ответ №1:

 ^(http://)?(www.)?[0-9A-z] .com?pid=(?<pid>d )amp;sid=(?<sid>d )$
  

Комментарии:

1. Это не соответствовало бы URL, если бы у него была косая черта в конце, т. Е. http://www.abc.com/?pid=3amp;sid=4 , и не совпадало бы https . Не уверен, что это требования.

2. @Jeff для https и завершающей косой черты: ^(https?://)?(www.)?[0-9A-z] .com/??pid=(?<pid>d )amp;sid=(?<sid>d )$

3. Спасибо за ответ, моя фактическая сеть требований abc.com/test/default.aspx?tid=1amp;sid=2 — здесь значения параметров являются точными числами — поэтому я изменил приведенное выше регулярное выражение на «^ (http: //)? (www .)? [0-9A-z] [0-9A-z] .com ?tid = 1 amp; sid = 2 $» — но это не сработало, можете ли вы сообщить мне исправления..

4. ^(https?://)?(www.)?[0-9A-z] .com/[0-9A-z] /[0-9A-z] .aspx?pid=(?<pid>d )amp;sid=(?<sid>d )$ будет соответствовать abc.com/test/default.aspx?pid=1amp;sid=2

Ответ №2:

 ^https?://(www.)?((?!-)[a-z0-9-] (?<!-).) w{2,6}/w /(default.aspx)??pid=d amp;sid=d $
  

Будет соответствовать:

 http://www.domain.tld/directory/?pid=123amp;sid=123
http://www.domain.tld/directory/default.aspx?pid=123amp;sid=123
http://www.sub-domain.domain.tld/directory/?pid=123amp;sid=123
http://www.sub-domain.domain.tld/directory/default.aspx?pid=123amp;sid=123
  

а также URL-адреса без www. и URL-адреса с https в качестве протокола.

Ответ №3:

Предполагая, что pid и sid являются статическими.

 pid=(.*)amp;sid=(.*)