$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
更改正则表达式,使其包含.
和-
:
$pat = array('/#([-.'w]+)/', '/@([-.'w]+)/');
您可能不希望它以 .
结尾,但是,如果主题标签位于 #sentence 的末尾。
$pat = array('/#([-.'w]*[-'w])/', '/@([-.'w]*[-'w])/');