3

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によって認識されないことを示しています。私はこれをかなり長い間試みてきましたが、これを行うことができません。だから助けてください。

PS:私は定期的な遠征についてほとんど考えていません。

4

3 に答える 3

1

ハッシュタグが表示される場所を考慮する必要があります。次の 3 つのケースがあります。

  • ツイートの冒頭で、
  • 空白の後、
  • 単語の途中 - これはハッシュタグとして数えてはなりません。

したがって、これはそれらを正しく一致させます:

'/(^|\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);
?>
于 2013-03-22T19:42:34.287 に答える
0

これは私のために働く:

$subject = "This is a simple #hashtag hello world #hastag2 last string #hashtag3";
$pattern = "/(#\w+)/";
preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
于 2013-03-22T19:33:24.453 に答える