PHP Twitterify函数regex不';不排除起始号码

PHP Twitterify函数regex不';不排除起始号码,php,regex,twitter,hashtag,Php,Regex,Twitter,Hashtag,我在用密码 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&l

我在用密码

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;
}
功能推特化($ret){
$ret=preg#u replace(“#(^|[\n])([\w]+?:/[\w]+[^\”\n\r\t<]*)#“,“\\1”,$ret);
$ret=preg#u replace(“#(^|[\n])((www.ftp)\.[^\”\t\n\r<]*)#“,“\\1”,$ret);
$ret=preg_replace(“/@(\w+/”,”,$ret);
$ret=preg#u replace(“/#(\w+/”,”,$ret);
返回$ret;
}
解析推文中的文本并添加链接。如果Tweet文本中出现#1,则会为其创建一个标签链接。这是不正确的,因为hashtag不能以数字开头

如何修改正则表达式以更正此问题

此外,应根据排除特殊字符。

而不是此字符

/#(\w+)/
用这个

/#([a-zA-Z]\w+)/

确保第一个字符是字母。

谢谢。这很简单。事实上,我刚刚发现标签规则与我想象的略有不同。正则表达式可能不完全符合这些规则,但我不认为将来会使用以数字开头的标签。