以下代码从推文中提取#hashtags并将它们放入变量$ matches。
$tweet = "this has a #hashtag a #badhash-tag and a #goodhash_tag";
preg_match_all("/(#\w+)/", $tweet, $matches);
var_dump( $matches );
有人可以向我解释为什么以下结果有 2个相同的数组而不只是1 ?
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"
}
}
答案 0 :(得分:11)
因为您使用()
来捕获子组。
尝试:
preg_match_all("/#\w+/", $tweet, $matches);
答案 1 :(得分:0)
为什么你要使用(),除非你想让它完全这样做。大声笑抱歉,这不是那么友好:(
答案 2 :(得分:0)
简单:
从表达式中删除()
希望它有所帮助。