Я нашел страницу со списком регулярных выражений, которые проверяют действительные URL.http://mathiasbynens.be/demo/url-regex
Один из Диего Пернини кажется лучшим выбором.https://gist.github.com/729294
Теперь я просто не могу заставить это регулярное выражение работать с поиском URL-адреса в строке.
Я хочу выделить URL-адрес в этой строке:
$string = 'Really digging new the twitter design! http://t.co/71dEuIY8';
Это регулярное выражение дает мне 0
preg_match_all('%^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@|\d{1,3}(?:\.\d{1,3}){3}|(?:(?:[a-z\d\x{00a1}-\x{ffff}]+-?)*[a-z\d\x{00a1}-\x{ffff}]+)(?:\.(?:[a-z\d\x{00a1}-\x{ffff}]+-?)*[a-z\d\x{00a1}-\x{ffff}]+)*(?:\.[a-z\x{00a1}-\x{ffff}]{2,6}))(?::\d+)?(?:[^\s]*)?$%iu', $string, $match);
Это соответствует действительному URL, когда я использую строку, содержащую только URL:
$string = 'http://t.co/71dEuIY8';
Как настроить это регулярное выражение длявыделить действительный или URL-адрес в строке, содержащей не только URL-адрес?