php – 为什么preg_match_all()多次创建相同的答案?
作者:互联网
以下代码从推文中提取#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"
}
}
解决方法:
因为您使用()来捕获子组.
尝试:
preg_match_all("/#\w+/", $tweet, $matches);
标签:php,preg-match-all 来源: https://codeday.me/bug/20190716/1480382.html