web-dev-qa-db-ja.com

PHPを使用して正規表現を正規表現に置き換えます

文字列内のハッシュタグを同じハッシュタグに置き換えたいが、リンクを追加した後

例:

$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."
22
user1272589
$input_lines="any Word here related to #English must #be replaced.";
preg_replace("/(#\w+)/", "<a href='bla bla'>$1</a>", $input_lines);

DEMO

[〜#〜] output [〜#〜]

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

これにより、正しい方向にナッジする必要があります。

_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()

6
Ja͢ck