将文本中的所有主题标签转换为超链接[重复]

问题描述 投票:0回答:2

我有以下字符串:

$str = '#hello how are #you and #you and #you';

我想在那些前面有哈希标签的html中包裹一些html,例如:

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

将输出:

#hello#you#you和#you

怎么样

注意每个URL链接都没有在链接中获得hash标签。

但是,这是我的问题,因为最后一个 #you 末尾没有空格,它与正则表达式不匹配,显然没有被包含在内。我不确定到底要做什么,因为有些后面可能有空格,有些可能没有,但我不想在输出中包含空格(因此 (?= ) ),但我不知道什么否则我可以做。

php regex replace hyperlink hashtag
2个回答
3
投票

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.