Я хочу сопоставить ссылку url в стене и заменить эту ссылку тегом anchor, для этого я использую регулярное выражение ниже.
Мне хотелось бы совместить 4 типа URL:
-
http://example.com
-
https://example.com
-
www.example.com
-
example.com
preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',
'<a href="$1">$1</a>', $subject);
Это выражение соответствует только первым двум типам URL.
Если я использую это выражение для соответствия шаблону url
'@(www?([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@'
, то он соответствует только типу url-шаблона третьего типа.
Как я могу сопоставить все четыре типа шаблона url с одним регулярным выражением?