У меня есть следующая строка:PHP Regex Справка для хэштегов
$str = '#hello how are #you and #you and #you';
Я хотел бы, чтобы обернуть некоторый HTML вокруг тех, которые имеют хэш-тег перед ними, для exampe:
echo preg_replace("/#([A-Za-z0-9_]+)(?=)/", "<a href='http://url.com/$1'>$0</a>", $str);
Что будет:
# ВыОбратите внимание, что в каждой ссылке URL не указан хэш-тег в ссылке.
Однако это моя проблема, потому что в конце последнего нет места, потому что оно не соответствует регулярному выражению и, очевидно, не включается. Я не уверен, что делать на самом деле, поскольку некоторые могут иметь пробелы после, а некоторые - нет, но я не хочу включать пробел в результат (следовательно, (? =)), Но я не знаю, что еще я сможет сделать.
Любая помощь была бы принята с благодарностью.
Заранее спасибо
Ничего себе, спасибо за ваш быстрый и очень хороший ответ. Я сделал еще одну модификацию, чтобы не включать пробелы в возвращаемые URL-адреса, поэтому последнее регулярное выражение: /@ ([A-Za-z0-9 _] +) (? = \ S | \ Z)/ Отлично, большое спасибо ennuikiller. Есть ли что-нибудь, что я могу сделать для вас, как знак благодарности? –
@ jamie ваша оценка более чем достаточно жест! Может быть, вы ответите на один из моих вопросов не раз! – ennuikiller
Я имел в виду «следующее» время, конечно! – ennuikiller