Замена в тексте хештега на ссылку php

Нужно написать функцию php с использованием регулярных выражений, которая заменит в тексте хештеги вида #хештег на ссылки <a href="/?tagName=хештег">#хештег</a>

Пример текста: Я люблю #футбол, #волейбол и #теннис.

function tagsToLinks($text) { // Данный пример не работает
    return preg_replace('/(#)(.+)(\s?)/Uuis', '<a href="/?tagName=$2">$1$2$3</a>', $text);
}

Ответы (1 шт):

Автор решения: Wiktor Stribiżew

Используйте

function tagsToLinks($text) {
    return preg_replace('/#(\S+)/u', '<a href="/?tagName=$1">$0</a>', $text);
}

См. пример работы регулярного выражения. Подробности:

  • # - символ #
  • (\S+) - подмаска №1: один и более символов, отличных от пробельных.

В шаблоне замены $0 ссылается на текст целого совпадения, а $1 — на текст первой подмаски.

→ Ссылка