用于hashtags的PHP正则表达式帮助

用于hashtags的PHP正则表达式帮助,php,regex,Php,Regex,我有以下字符串: $str = '#hello how are #you and #you and #you'; 我想将一些html包装在前面有哈希标记的html周围,例如: echo preg_replace("/#([A-Za-z0-9_]+)(?= )/", "<a href='http://url.com/$1'>$0</a>", $str); 这将输出: 你好,你呢 请注意,每个URL链接中都没有哈希标记 然而,这是我的问题,因为在上一篇文章的结尾没有空格,

我有以下字符串:

$str = '#hello how are #you and #you and #you';
我想将一些html包装在前面有哈希标记的html周围,例如:

echo preg_replace("/#([A-Za-z0-9_]+)(?= )/", "<a href='http://url.com/$1'>$0</a>", $str);
这将输出:

你好,你呢

请注意,每个URL链接中都没有哈希标记

然而,这是我的问题,因为在上一篇文章的结尾没有空格,它与正则表达式不匹配,显然没有被包括在内。我不确定该怎么做,因为有些可能后面有空格,有些可能没有,但我不想在输出中包含空格,因此?=但我不知道还能做什么

任何帮助都将不胜感激


提前感谢

使用\s|\Z这将匹配空格或行尾

使用\s|\Z这将匹配空格或行尾

您可以将选择器切换到排除模式,例如[^,.]+。因此,应该适用于所有实例。

您可以将选择器切换到排除模式,例如[^,.]+。因此,应该适用于所有实例。

哇,感谢您快速且非常好的回答。我对它做了一次修改,在返回的URL中不包含空格,所以最后的正则表达式是:/@[A-Za-z0-9_]+?=\s|\Z/非常感谢。我能为你做点什么表示感谢吗?@jamie你的感激之情已经足够了!也许你会回答我的问题而不是时间!我会密切关注你的问题!哇,谢谢你快速而漂亮的回答。我对它做了一次修改,在返回的URL中不包含空格,所以最后的正则表达式是:/@[A-Za-z0-9_]+?=\s|\Z/非常感谢。我能为你做点什么表示感谢吗?@jamie你的感激之情已经足够了!也许你会回答我的问题而不是时间!我会密切关注你的问题!谢谢你的回答,我也尝试过这个,也和上面的正则表达式一样有效,请参见上面答案中的评论。再次感谢您的快速回复!谢谢你的回答,我也尝试过这个,也和上面的正则表达式一样有效,请参见上面答案中的评论。再次感谢您的快速回复!