Instagram用真实链接替换主题标签

时间:2017-11-06 17:40:42

标签: regex preg-replace instagram hashtag

我正在尝试用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>

非常感谢。

1 个答案:

答案 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);
}

把它放在一个字符类中,就是这样。