【发布时间】:2014-04-09 23:34:50
【问题描述】:
我正在使用代码
function twitterify($ret) {
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $ret);
$ret = preg_replace("/#(\w+)/", "<a href=\"http://twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $ret);
return $ret;
}
从推文中解析文本并添加链接。如果#1 出现在推文文本中,则会为其创建一个标签链接。这是不正确的,因为主题标签不能以数字开头。
如何修改正则表达式来纠正这个问题?
还应根据this排除特殊字符。
【问题讨论】: