我正在尝试用href和hashtag替换hashtag。我找到了解决方案here,并根据我的需要对其进行了修改,但它忽略了点.
之后的文字,并剪切了下一个字母:
我的功能:
function hashtag($str) {
return preg_replace(array('/#(\w+)/', '/@(\w+)/'), array(' <a href="/t/$1" class="hashtag">#$1</a>', ' <a href="/u/$1" class="username">@$1</a>'), $str);
}
工作示例:
@visual => <a href="/t/visual" class="hashtag">#visual</a>
不工作示例:
@visual.test => <a href="/t/visual" class="hashtag">#visual</a>.test
如何将.
添加到模式中才能正常工作并拥有:
@visual.test => <a href="/t/visual.test" class="hashtag">#visual.test</a>
非常感谢。
答案 0 :(得分:2)
你可以去
function hashtag($str) {
return preg_replace(
array('/#(\w+)/', '/@([\w.]+)/'),
# --^--
array(' <a href="/t/$1" class="hashtag">#$1</a>', ' <a href="/u/$1" class="username">@$1</a>'),
$str);
}
把它放在一个字符类中,就是这样。