3

次のコードは、ツイートから#hashtagsを抽出し、それらを変数$matchesに配置します。

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

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

var_dump( $matches );

次の結果に1つではなく2つの同一の配列がある理由を誰かに説明してもらえますか?

array(2) {
  [0]=>
  array(3) {
    [0]=>
    string(8) "#hashtag"
    [1]=>
    string(8) "#badhash"
    [2]=>
    string(13) "#goodhash_tag"
  }
  [1]=>
  array(3) {
    [0]=>
    string(8) "#hashtag"
    [1]=>
    string(8) "#badhash"
    [2]=>
    string(13) "#goodhash_tag"
  }
}
4

3 に答える 3

11

()サブグループをキャッチするために使用するためです。

試す:

preg_match_all("/#\w+/", $tweet, $matches);
于 2012-08-20T01:58:17.150 に答える
0

正確にそれを行いたくないのであれば、なぜ () を使用しているのですか。笑 すみません、あまり友好的ではありませんでした:(

http://php.net/manual/en/function.preg-match-all.php例 3

于 2012-08-20T02:02:52.647 に答える