如何从下面的字符串中获取数组?
我需要介于@
和space
之间的内容。
Gold star @RPXIeDIWVuTHFWGkaWbJEvv0KFk2 nice James @72oCu3zBCHQzS5fiY3KNFCWkgA53 for @DoxBay
我正在使用php爆炸功能
$output=explode("@",$title);
var_dump($output);
答案 0 :(得分:2)
听起来像您将要使用preg_match_all()来创建字符串中所有匹配项的数组。
这将获取您的字符串并将其与您的模式进行比较。它将把您要查找的结果放置在matchs数组的第二个元素中。
像这样:
$str = 'Gold star @RPXIeDIWVuTHFWGkaWbJEvv0KFk2 nice James @72oCu3zBCHQzS5fiY3KNFCWkgA53 for @DoxBay ';
preg_match_all('/@(.*?)\s/', $str, $matches);
echo '<pre>';
print_r($matches[1]);
echo '</pre>';
这将输出:
Array
(
[0] => RPXIeDIWVuTHFWGkaWbJEvv0KFk2
[1] => 72oCu3zBCHQzS5fiY3KNFCWkgA53
[2] => DoxBay
)
答案 1 :(得分:1)
最简单的方法可能是正则表达式。
这将捕获@
和空格之间的内容。
由于最后一个单词后面没有空格,因此我们可以在字符串中添加空格或更改模式。我选择添加一个空格。
$str = "Gold star @RPXIeDIWVuTHFWGkaWbJEvv0KFk2 nice James @72oCu3zBCHQzS5fiY3KNFCWkgA53 for @DoxBay";
preg_match_all("/\@(.*?)\s/", $str . " ", $match);
var_dump($match);
输出:
array(2) {
[0]=>
array(3) {
[0]=>
string(30) "@RPXIeDIWVuTHFWGkaWbJEvv0KFk2 "
[1]=>
string(30) "@72oCu3zBCHQzS5fiY3KNFCWkgA53 "
[2]=>
string(8) "@DoxBay "
}
[1]=>
array(3) {
[0]=>
string(28) "RPXIeDIWVuTHFWGkaWbJEvv0KFk2"
[1]=>
string(28) "72oCu3zBCHQzS5fiY3KNFCWkgA53"
[2]=>
string(6) "DoxBay"
}
}