我想要正确使用Twitter Hashtags。使用此代码:
$html = preg_replace("#(^|[\n ])\#([^ \"\t\n\r<]*)#ise", "'\\1<a href=\"".$website_content_url."/search=%23\\2\" target=\"_self\">#\\2</a>'", $html);
一切正常!但是,当我使用这个词时:#Männer!链接将包括!。但我希望链接在之前停止!以及我可以进入的其他迹象?或点。但是!应该仍然显示;)
这可能吗?
谢谢:)
答案 0 :(得分:1)
让我们关注有趣的部分:
\#([^ \"\t\n\r<]*)
此模式的工作原理如下:
\# // match #
( // open a capture group
[^...] // a negated character class which matches any character
// that is **not** inside this class
* // match the previous group / class zero or more times
) // close capture group
在角色类中,您有\"\t\n\r<
,这意味着[^ \"\t\n\r<]
匹配任何不空格,引号,制表符,换行符,回车符或{ {1}}。您所要做的就是将标点符号添加到类中,例如:<
。
你不需要为afmk的afaik做任何特别的事。
学习正则表达式的良好起点:http://regular-expression.info/。