我无法弄清楚如何在字符串中分解白色空格,不包括引号内的内容。我找到了几个可以完成这项工作的正则表达式,但这里的特殊性是引号前面有一个等号:
string = 'arg1="value1" arg2="value2" arg3="value3 value4 value5"';
我能够隔离引号中包含的内容,但我无法获得完整的对arg1="value1 value2"
感谢您的帮助。
答案 0 :(得分:2)
$test = 'arg1="value1" arg2="value2" arg3="value3 value4 value5"';
preg_match_all('#([a-zA-Z0-9]+)="([^"]+)"#', $test, $matches);
var_dump($matches);
返回:
array(3) {
[0]=>
array(3) {
[0]=>
string(13) "arg1="value1""
[1]=>
string(13) "arg2="value2""
[2]=>
string(27) "arg3="value3 value4 value5""
}
[1]=>
array(3) {
[0]=>
string(4) "arg1"
[1]=>
string(4) "arg2"
[2]=>
string(4) "arg3"
}
[2]=>
array(3) {
[0]=>
string(6) "value1"
[1]=>
string(6) "value2"
[2]=>
string(20) "value3 value4 value5"
}
}
答案 1 :(得分:0)
试试这个
<?php
$string = 'arg1="value1" arg2="value2" arg3="value3 value4 value5"';
$whitespacearray= explode(" ",$string);
print_r($whitespacearray);
?>