Я бы сделал это так:
$output = preg_replace('!\b((https?|ftp)://)?www3?\..*?\b!', '', $input);
, который:
- Начинается с границы слова (
\b
);
- При желании начинается с http://, https: // или ftp: //; и
- Доменное имя начинается с www. или www3.
Этот текст и весь текст до следующей границы слова затем удаляются.
Примечание: Использование \b
обычно лучше проверки пробелов. \b
- это нулевая ширина (то есть она не потребляет части ввода), которая соответствует началу строки, концу строки, переходу от слова к несловесному символу или переходу от не-слова слово в слово.