Я хочу создать регулярное выражение, которое соответствует ссылкам, которые не имеют точек в конце. Я знаю, что полное доменное имя всегда имеет корневую точку в конце, но я работаю над службой блога. Мне нужно обработать записи в блоге, и, очевидно, некоторые пользователи заканчивают свое сообщение ссылкой, а затем точкой, чтобы закончить предложение.
Эти тексты выглядят примерно так:
Example text... https://example.com/site. More text here...
Проблема в том, что это не ссылка на какую-либо веб-страницу. С помощью этого вопроса я сделал эту функцию PHP:
function modifyText($text) {
$url = '/(http|https)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/';
$string= preg_replace($url, '<a href="$0" target="_blank">$0</a>', $text);
return $string;
}
В приведенном выше примере этот код генерирует
Example text... <a href="https://example.com/site." target="_blank">https://example.com/site.</a> More text here...
но это должно сгенерировать
Example text... <a href="https://example.com/site" target="_blank">https://example.com/site</a>. More text here...