$post = mysqli_real_escape_string($con, htmlspecialchars($_POST['post']));
$pat = array('/#(\w+)/', '/@(\w+)/');
$rep = array('<a href="#">#$1</a>','<a href="profile.php?user=$1">@$1</a>');
$post = preg_replace($pat, $rep, $post);
以上正则表达式代码适用于没有(.
)和(-
)的文本。我希望哪个可以支持#stack-overflow
#stack.overflow
答案 0 :(得分:1)
更改正则表达式,使其包含.
和-
:
$pat = array('/#([-.\w]+)/', '/@([-.\w]+)/');
但是,如果主题标签位于#sentence的末尾,您可能希望不允许它以.
结尾。
$pat = array('/#([-.\w]*[-\w])/', '/@([-.\w]*[-\w])/');