到目前为止,我尝试用锚标记替换所有出现@提及的地方:
$comment = preg_replace('/@([^@ ])? /', '<a href="/$1">@$1</a> ', $comment);取以下示例字符串:
"@name kdfjd fkjd as@name @ lkjlkj @name"到目前为止,一切都匹配正常,但我想忽略那个"@“符号。我尝试在"^@“后面使用"+”和"{2,}“,我认为这将强制执行最小数量的匹配,但它不起作用。
发布于 2012-04-30 21:16:33
用+替换?是可行的,但并不是您所期望的那样。
您的表达式与字符串末尾的@name不匹配。
$comment = preg_replace('#@(\w+)#', '<a href="/$1">$0</a> ', $comment);这应该可以做你想要的事情。\w+代表字母(a-zA-Z0-9)
https://stackoverflow.com/questions/10384136
复制相似问题