如何用PHP中的<a href ..替换http://或www

Jak*_*old 7 php regex preg-replace

我创造了这个正则表达式

(www|http://)[^ ]+
Run Code Online (Sandbox Code Playgroud)

匹配每个http:// ...www ....但我不知道如何使preg_replace工作,我试过

preg_replace('/((www|http://)[^ ]+)/', '<a href="\1">\1</a>', $str);
Run Code Online (Sandbox Code Playgroud)

但它不起作用,结果是空字符串.

Jer*_*ten 14

您需要转义正则表达式中的斜杠,因为您使用斜杠作为分隔符.您还可以使用其他符号作为分隔符.

// escaped
preg_replace('/((www|http:\/\/)[^ ]+)/', '<a href="\1">\1</a>', $str);

// another delimiter, '@'
preg_replace('@((www|http://)[^ ]+)@', '<a href="\1">\1</a>', $str);
Run Code Online (Sandbox Code Playgroud)

  • 恭喜!你是唯一一个不会从混乱中复制错误的正则表达式的人. (2认同)