Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярка для проверки URL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
zeR2one
Отправлено: 14 Января, 2013 - 17:52:38
Post Id



Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Нояб. 2011  
Откуда: Украина, Чернигов.


Помог: 0 раз(а)




Здравствуйте. Помогите пожалуйста с регуляркой по проверке URL. На счет того что готовых регулярок огромное множество по данной теме я знаю. Но я пишу её в целях обучение.
Есть такая регулярка
PHP:
скопировать код в буфер обмена
  1.  
  2. ~^(?:http(?:s)?://)?(?:www.)?(?:[a-z]{1}[a-z0-9]*.)?(?:[a-z]{1}[-a-z0-9]*[a-z0-9]{1}\.)(?:[a-z]{2}|com|gov|org|net)?(?::\d{1,5})?(?:/[^&\s]+/?)*(?:\?(?:[a-z]{1}[a-z0-9]*=[^&\s]+)*&?)?(?:#[a-z]{1}[-a-z0-9_]*)?$~i
  3.  

Нужно чтобы она совпала с: http://zcontest.ru/dir%201/dir_2/program.ext?var1=x&var2=my%20value
В принципе там всё понятно. Но вот часть которая отвечает за параметры строки запроса не могу разобраться.
Вот собственно эта часть:
PHP:
скопировать код в буфер обмена
  1.  
  2. (?:\?(?:[a-z]{1}[a-z0-9]*=[^&\s]+)*&?)?
  3.  

Ну для начала из за этого подвыражения [^&\s]+ она вообще не находит совпадения так как в строке запроса & это разделитель, а если они встречается в роли значения то кодируется в специальную последовательность, так вот я хотел бы узнать как мне избежать этой проблемы и сделать так чтобы & подходил только в том случае если уже прежде совпало одна пара переменная и значения, а за ней сразу же идет следующая.

(Отредактировано автором: 14 Января, 2013 - 18:52:41)



-----
Все что есть на свете когда то было мечтой
 
 Top
philimon
Отправлено: 23 Января, 2013 - 08:31:56
Post Id


Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Окт. 2007  
Откуда: Моск. обл.


Помог: 2 раз(а)




Опишите кратко что должно делать регулярное выражение со строкой
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB