我目前有一个preg_match_all
用于不包含空格的常规字符串,但我现在需要让它适用于每个空格之间的任何内容。
我需要abc, hh, hey there, 1 2 3, hey_there_
才能返回
abc
hh
hey there``1 2 3
hey_there_
但是当涉及空间时,我的当前脚本就会停止。
preg_match_all("/([a-zA-Z0-9_-]+)+[,]/",$threadpolloptions,$polloptions);
foreach(array_unique($polloptions[1]) as $option) {
$test .= $option.' > ';
}
答案 0 :(得分:3)
在这种情况下,你不需要定期表达。爆炸会更快
$str = 'abc, hh, hey there, 1 2 3, hey_there_';
print_r(explode(', ', $str));
结果
Array
(
[0] => abc
[1] => hh
[2] => hey there
[3] => 1 2 3
[4] => hey_there_
)
<强>更新强>
$str = 'abc, hh,hey there, 1 2 3, hey_there_';
print_r(preg_split("/,\s*/", $str));
结果相同
答案 1 :(得分:2)
您可以将explode
与array_map
一起用作
$str = 'abc, hh, hey there, 1 2 3, hey_there_';
var_dump(array_map('trim',explode(',',$str)));
答案 2 :(得分:0)
您可以使用explode():
$string = "abc, hh, hey there, 1 2 3, hey_there_";
$array = explode(',', $string);
foreach($array as $row){
echo trim($row, ' ');
}