php preg_replace替换hashtags

时间:2016-06-16 08:11:59

标签: php

我正在使用此代码制作主题标签:

preg_replace(  '/\#([A-Za-z0-9]*)/is', ' <a href="tag/$1"> #$1</a> ', $text);

它有效,但当遇到这个时:“它#039; s”(“它是”),它也取代了它。 所以我想我希望它只是替换主题标签,如果它们之前有空格,或者在行的开头。类似于下面的字符串:

  

这是#tag,这是    #anotherTag,但“it's”和“它#039; s”这个词没有被替换

如何更改preg才能执行此操作? 感谢

1 个答案:

答案 0 :(得分:1)

您正在寻找的概念是负面的背后隐藏

/(?<!=|\b|&)#([a-z0-9_]+)/i

注意?<!=部分,这就是说匹配前面没有\b#的主题标签。