我正在使用此代码制作主题标签:
preg_replace( '/\#([A-Za-z0-9]*)/is', ' <a href="tag/$1"> #$1</a> ', $text);
它有效,但当遇到这个时:“它#039; s”(“它是”),它也取代了它。 所以我想我希望它只是替换主题标签,如果它们之前有空格,或者在行的开头。类似于下面的字符串:
这是#tag,这是 #anotherTag,但“it's”和“它#039; s”这个词没有被替换
如何更改preg才能执行此操作? 感谢
答案 0 :(得分:1)
您正在寻找的概念是负面的背后隐藏
/(?<!=|\b|&)#([a-z0-9_]+)/i
注意?<!=
部分,这就是说匹配前面没有\b
或#
的主题标签。