字符串:
preg_split(\s?AND\s?|\s?OR\s?, $string);
PHP:
["test", "test2", "test3", "test4"]
结果:
["test", "test2", "test3", "test4"]
["AND", "OR", "AND"]
通缉结果:
#parent {
display: table;
width: 100%;
}
#parent>div {
display: table-cell;
background: lightblue;
}
#parent>div:first-child {
background: lightgreen;
}
我怎样才能得到这个结果?
答案 0 :(得分:2)
在preg_split
选项使用PREG_SPLIT_DELIM_CAPTURE
时分隔捕获的分隔符的方法。
$string = "test AND test2 OR test3 AND test4";
$arr = preg_split('~\s*\b(AND|OR)\b\s*~', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
$andor = [];
$test = [];
foreach($arr as $k=>$v) {
if ($k & 1)
$andor[] = $v;
else
$test[] = $v;
}
print_r($test);
print_r($andor);
$k & 1
是按位运算符AND。当索引$k
为奇数时,这意味着第一位设置为1,然后$k & 1
返回1
。 (除非您使用PREG_SPLIT_NO_EMPTY
,否则分隔符总是奇怪的索引。)
答案 1 :(得分:0)
您可以使用preg_split
和preg_match_all
作为
$str = "test AND test2 OR test3 AND test4";
$arr1 = preg_split('/\b(AND|OR)\b/', $str);
preg_match_all('/\b(AND|OR)\b/', $str, $arr2);
print_r($arr1);
print_r($arr2[0]);
否则,只需使用@mario使用PREG_SPLIT_DELIM_CAPTURE