Замена хэштегов на ссылки

80
23 октября 2021, 02:10

Пытаюсь реализовать хэштеги. Заменить каждый хэштег на ссылку.

Есть строка

$PhotoDescrition со значением:

Здесь должно быть красивое описание фотографии с использованием
#хэштегов несолько #раз. #Реализация34 #Будь_Вкурсе

Регулярное выражение которое я использую.

preg_replace('/(^|\s)#(\w*[a-zA-Zа-яА-Я]+\w*)/', '\1<a href="/search/query=\2">#\2</a>', $PhotoDescrition);

Но русские буквы не выводятся. Может есть более точное регулярное выражение?

Мне необходимо что-бы, хештеги имели тип: Буквы, Цифры, и нижнее подчеркивание (не должно повторяться более 1 раза подряд)

Answer 1

https://ideone.com/QuzA3s

echo preg_replace(
  '/(^|\s)#([a-zA-Zа-яёА-ЯЁ]+)/u',
  '\1<a href="/search/query=\2">#\2</a>',
  'just a #text #ёжик побежал'
);
Answer 2

Необходимо что-бы, хештеги имели тип: Буквы, Цифры, и нижнее подчеркивание (не должно повторяться более 1 раза подряд)

echo preg_replace(
    '~(?:^|\s)\K#([\pL\d]*_?[\pL\d]+)(?=\s|$)~u',
    '<a href="/search/query=$1">#$1</a>',
    'just a #ё_жик #te-xt #ё__жик #_text побежал'
);
READ ALSO
Как замокать метод с обращением в БД

Как замокать метод с обращением в БД

Есть класс с двумя методами, один оперирует данными взятыми из второгоНужно протестировать метод sum не получая данных из метода db, а подставив...

200
Получить все возможные значения из БД

Получить все возможные значения из БД

У меня есть система файлов и папокВ данном контексте - папка и файл некое структурированное значение в БД

198
Как писать один лог одновременно несколькими обработчиками? PHP

Как писать один лог одновременно несколькими обработчиками? PHP

Вернее, обработчик один, но много запросов идут вместе (телеграмм бот)Заметил, что в логе в пиковые моменты далеко не вся информация записана,...

153
Как подключить расширения в php

Как подключить расширения в php

Laravel требует чтобы были установлены следующие php расширения:

192