我需要将像hey 'this is' some text
这样的空格分隔的字符串标记为数组['hey', 'this is', 'some', 'text']
(单引号字符是转义字符)。
到目前为止我所拥有的内容将在空格上分割,但它没有包含必要的转义字符。
$tokens = preg_split('/[\ \n\,]+/', $whitespaceDelimitedString);
正则表达忍者,出来!!拜托,谢谢。
答案 0 :(得分:5)
您可以使用此代码:
$s = "hey 'this is' some text";
$a = preg_split("/'([^']*)'\s*|\s+/", $s, 0, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
print_r($a);
Array
(
[0] => hey
[1] => this is
[2] => some
[3] => text
)
答案 1 :(得分:3)
内置PHP功能:str_getcsv()
http://www.php.net/manual/en/function.str-getcsv.php
所以这个简单的代码:
<?php
$string = "hey 'this is' some text";
$output = str_getcsv ( $string, ' ', "'");
print_r($output);
...将输出:
Array ( [0] => hey [1] => this is [2] => some [3] => text )