Использование PHP заменить регулярное выражение с помощью REGEX

StackOverflow https://stackoverflow.com//questions/22040272

  •  21-12-2019
  •  | 
  •  

Вопрос

Я хочу заменить хеш-теги в строку с тем же хэш-тегом, но после добавления ссылки на него

Пример:

$text = "any word here related to #English must #be replaced."
.

Я хочу заменить каждый хэштег с

#English ---> <a href="bla bla">#English</a>
#be ---> <a href="bla bla">#be</a>
.

Так что вывод должен быть таким:

$text = "any word here related to <a href="bla bla">#English</a> must <a href="bla bla">#be</a> replaced."
.

Это было полезно?

Решение

$input_lines="any word here related to #English must #be replaced.";
preg_replace("/(#\w+)/", "<a href='bla bla'>$1</a>", $input_lines);
.

Демонстрация

<Сильный> Выход :

any word here related to <a href='bla bla'>#English</a> must <a href='bla bla'>#be</a> replaced.
.

Другие советы

Это должно подтовать вас в правильном направлении:

echo preg_replace_callback('/#(\w+)/', function($match) {
    return sprintf('<a href="https://www.google.com?q=%s">%s</a>', 
        urlencode($match[1]), 
        htmlspecialchars($match[0])
    );
}, htmlspecialchars($text));
.

Смотрите также: preg_replace_callback()

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top