【问题标题】:Finding Hashtags in String在字符串中查找标签
【发布时间】:2018-01-20 14:31:33
【问题描述】:

我正在尝试查找字符串中的所有主题标签

示例字符串:

Hello World #Hello #World #Hello-World #Hello_World #Test-Tag

我尝试使用以下代码:

preg_match_all('/#([^\s]+)/', $postbody, $matches);
    $tags = implode(',', $matches[1]);
    var_dump($tags);

结果是

Hello,World,Hello-World,Hello_World,Test-Tag

如何让它以除 A-Z、a-z 和 0-9 以外的任何字符结尾

我的目标输出是

你好,世界,测试

我希望它在到达不是字母或数字的字符之前停止,也不会打印重复。

参考: Get hashtag from string reference

【问题讨论】:

  • 这是你想要的吗? tinywebhut.com/regex/10
  • @Saral 我想要那个,但只返回“Hello, World, Test”
  • 在 preg_match_all 中使用 A-Za-z0-9

标签: php


【解决方案1】:

您可以使用[a-zA-Z0-9] 正则表达式来仅获取字母和数字。
之后,使用array_unique 过滤掉重复的匹配项

$postbody = 'Hello World #Hello #World #Hello-World #Hello_World #Test-Tag';

preg_match_all('/#([a-zA-Z0-9]+)/', $postbody, $matches);
if(!empty($matches)){
   $tags = implode(',', array_unique($matches[1]));
   var_dump($tags);
}

输出:string(16) "Hello,World,Test"

【讨论】:

  • 完美运行!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-16
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多