Я внедряю систему временных линий на своем веб-сайте, где пользователи могут указать других пользователей на их временной шкале, используя @username как твиттер.php regex - Замените все @usernames ссылкой в строке
Я хочу, чтобы преобразовать @Username по ссылке и указать его на свой профиль
Моя строка:
$timeline="@fred-ii 's posts on @stackoverflow are intresting.";
Я использую следующий код, чтобы заменить @Username с URL:
echo preg_replace("/@([^\s]+)/i","<a href='http://example.com/$1'>@$1</a>",$timeline);
это работает, проблема в том, что он соответствует местам также
эта строка
"@fred-ii 's posts [email protected]";
Там нет места между на и @stackoverflow, я хочу, чтобы исключить его,
так я обновил мой регулярное выражение
/\[email protected]([^\s]+)/
он работал, но он не соответствовал первой части моей строки (имя пользователя @ fred-ii). Я думаю, что regex engine is looki ng для пробела | s в начале строки.
Что мне нужно изменить в моем шаблоне, чтобы соответствовать всем @usernames?
$timeline="@fred-ii 's posts on @stackoverflow are intresting.";
Таким образом, вы хотите, чтобы соответствовать пространство в имени пользователя, но не имеют места в ссылке? – Shomz