楼主:
ThiefFan (不务正业的贼)
2017-01-10 16:40:37/*
用php的preg_replace()
需要帮 #xxxxx 加连结
但原本写法会把 &#xxxx; 也加连结而不能正常显示该字符
应该怎么修正才对呢?目前试过的两种写法如下:
*/
<pre><?
$a="
测试preg #12829
有空格 #128 #129 #130
没空格#128#129#130
要取代#16888
但不取代䇸
";
echo preg_replace('/#(\\d+)/', '<a href=de.php?no=\\1>#\\1</a>', $a);
echo "↑会取代&#";
echo preg_replace('/(?!&).#(\\d+)/', '<a href=de.php?no=\\1>#\\1</a>', $a);
echo "↑会吃#前面字符";
?></pre>
作者:
LPH66 (-6.2598534e+18f)
2017-01-10 17:12:00用 (?<! ) 这个和 (?! ) 类似, 不过是看前面的同样地 (?= ) 的向前看版本是 (?<= )啊, 讲反了XD 这叫 Lookbehind, 所以是"回头看"这样就可以去掉中间抓前一个字的 . 了