从 PHP 函数中的推文中检索所有主题标签

2022-08-30 17:18:26

我想使用PHP函数从推文中检索所有主题标签。

我知道有人在这里问了类似的问题,但没有提示如何在PHP中实现这一点。由于我不是很熟悉正则表达式,因此不知道如何编写一个函数来返回推文中所有主题标签的数组。

那么我该如何使用下面的正则表达式来做到这一点:

#\S*\w

答案 1

我创建了自己的解决方案。它的作用是:

  • 查找字符串中的所有 # 标签
  • 删除重复的
  • 对有关文本中存在的计数的 # 标签进行排序
  • 支持统一码字符

    function getHashtags($string) {  
        $hashtags= FALSE;  
        preg_match_all("/(#\w+)/u", $string, $matches);  
        if ($matches) {
            $hashtagsArray = array_count_values($matches[0]);
            $hashtags = array_keys($hashtagsArray);
        }
        return $hashtags;
    }
    

输出如下所示:

(
    [0] => #_ƒOllOw_
    [1] => #FF
    [2] => #neslitükendi
    [3] => #F_0_L_L_O_W_
    [4] => #takipedeğerdost
    [5] => #GönüldenTakipleşiyorum
)

答案 2
$tweet = "this has a #hashtag a  #badhash-tag and a #goodhash_tag";

preg_match_all("/(#\w+)/", $tweet, $matches);

var_dump( $matches );

*破折号是主题标签的非法字符,允许使用下划线。


推荐