如何在不破坏URL的情况下获取正则表达式的#标签?

时间:2014-07-19 15:04:11

标签: php regex

我目前正在使用

$string = 'bla bla bla #hashtag bla bla http://example.com/1-page.html#thisisnotahashtag';

$string = preg_replace("/(#\w+)/", '<a href="search.php?hashtag=$1">$1</a>', $string);

echo $string;

退货: bla bla bla <a href="search.php?hashtag=#hashtag">#hashtag</a> bla bla http://example.com/1-page.html<a href="search.php?hashtag=#thisisnotahashtag">#thisisnotahashtag</a>

效果很好,但它也会削减URL。我有第二个替换调用,它使URL可点击超链接。但是使用这个脚本,它会削减网址。

2 个答案:

答案 0 :(得分:-1)

你可以尝试这件事:(我对php并不是很好,主要针对regex部分)

$string = preg_replace("/([^html]#\w+)/", ' <a href="search.php?hashtag=$1">$1</a>', $string);

答案 1 :(得分:-1)

$string = preg_replace("/(#\w+)/", '<a href="search.php?hashtag=$1">$1</a>', $string, 1);

第四个参数1指定limit

Limit:每个主题字符串中每个模式的最大可能替换次数。默认为-1(无限制)。 请参阅HERE