Исправить выражение

Статус
В этой теме нельзя размещать новые ответы.
serrgo
Ошибка высветилась:
Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in Z:\home\plan.ru\www\users\settings.php on line 41
потому что для такого экзотического регекспа требуется не менее экзотический делимитер (то есть символ, ограничивающий начало и конец выражения), например, ¦ или § или €.
И тогда сам код станет выглядеть
PHP:
preg_match("¦((https?|ftp)\://((\[?(\d{1,3}\.){3}\d{1,3}\]?)|(([-a-zA-Z0-9]+\.)+[a-zA-Z]{2,4}))(\:\d+)?(/[-a-zA-Z0-9._?,'+&%$#=~\\]+)*/?)¦i", $any_variable);
Хотя есть и совершенно нереальный по сложности, хотя и рабочий регексп для URL-ов:
Код:
^(?#Protocol)(?:(?:ht|f)tp(?:s?)\:\/\/|~/|/)?(?#Username:Password)(?:\w+:\w+@)?(?#Subdomains)(?:(?:[-\w]+\.)+(?#TopLevel Domains)(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2}))(?#Port)(?::[\d]{1,5})?(?#Directories)(?:(?:(?:/(?:[-\w~!$+|.,=]|%[a-f\d]{2})+)+|/)+|\?|#)?(?#Query)(?:(?:\?(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)(?:&(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)*)*(?#Anchor)(?:#(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)?$
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху