Это является образец текста:PHP Regex: текст матч URLs до пробела или конца строки
$text = "asd dasjfd fdsfsd http://11111.com/asdasd/?s=423%423%2F gfsdf http://22222.com/asdasd/?s=423%423%2F
asdfggasd http://3333333.com/asdasd/?s=423%423%2F";
Это мой регулярное выражение схеме:
preg_match_all("#http:\/\/(.*?)[\s|\n]#is", $text, $m);
, которые соответствуют первым двум URLs, но как соответствовать ли я последнему? Я попытался добавить [\ s | \ n | $], но это также будет соответствовать только первым двум URL-адресам.
Не работает. Что бы это ни значило. Я уверен, что шаблон всегда работает. – hakre
@hakre это не соответствует 3-му URL, только первые два. –
'' 'используются в'() 'не в' [] ', чтобы сказать * или *. Вы пробовали: '(\ s | \ n | $)' или '(?: \ S | \ n | $)'? ('?:' делает группу несоответствующей) - также вы можете просто добавить пробел в '$ text';) – hakre