【发布时间】:2016-12-07 18:28:04
【问题描述】:
我目前正在使用preg_replace 将提到的主题标签替换为 html 链接,如下所示。问题是有可能会检查 html 代码。所以一些css比如color: #000000;会强制它尝试将那个十六进制代码转换成一个链接。
如果单词的最后一个字母是;,我基本上需要我的正则表达式来忽略任何 preg_replace。这是我目前拥有的:
$str = preg_replace('/#([a-zA-Z0-9!_%]+)/', '<a href="http://example.com/tags/$1">#$1</a>', $str);
示例输入:'I like #action movies!'
预期输出:I like <a href="http://example.com/tags/action">#action</a> movies!'
我不能使用字符串的结尾来检查这一点,因为在任何给定时间都会检查文本块,因此提供的字符串可能是 #computer text text text #computer。
感谢任何帮助。
【问题讨论】:
-
你能在这里举一个例子来解释你的输入字符串是什么以及预期的输出是什么......?
-
我用一个例子编辑了我的帖子。链接格式正确且符合预期,我只需要调整我的正则表达式,使其忽略带有 ; 的单词。最后。