php - 在 twitter API PHP 中解析主题标签

标签 php regex twitter hashtag

我想从我从 Twitter 检索的推文中解析主题标签。现在,我没有在 api 中找到任何可用的东西。所以,我正在使用 php 自行解析它。我已经尝试了几件事。

<?php
$subject = "This is a simple #hashtag";
$pattern = "#\S*\w";
preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

我也试过

$pattern = "/[#]"."[A-Za-z0-9-_]"."/g";

但是它显示/g 不被 php 识别。我已经尝试这样做很长时间了,但我无法做到这一点。所以请帮忙。

附言: 我对正则表达式知之甚少。

最佳答案

您需要考虑主题标签可能出现的位置。分三种情况:

  • 在推文的开头,
  • 空格后,
  • 在单词的中间 - 这不能算作主题标签。

所以这将正确匹配它们:

'/(^|\s)\#\w+/'

解释:

  • ^ 可以在OR 语句中使用
  • \s 用于捕捉空格、制表符和换行符

完整代码如下:

<?php
$subject = "#hashtag This is a simple #hashtag hello world #hastag2 last string not-a-hash-tag#hashtag3 and yet not -#hashtag";
$pattern = "/(?:^|\s)(\#\w+)/";
preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

关于php - 在 twitter API PHP 中解析主题标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15578314/

相关文章:

c# - 使用正则表达式捕获分隔符内的子字符串并排除字符

regex - 如何将所有正则表达式匹配项放入字符串列表中

twitter - 读取包含 Twitter 表情符号描述的文件

iphone - iOS-发布到Facebook ...图标是这个吗?

php - 为什么将框架文件夹放在公共(public)根目录之外更安全?

php - 如何使用按钮从mysql删除记录?

java - Java 7 中的 Regex-replace-with-function-evaluation 等效于什么?

php - 分隔字符串中的多个元素

php - 使用ajax处理表单

javascript - 每 10 秒读一次我的 Twitter 帐户