我不知道我在哪里看到它,但任何人都可以告诉我如何使用
PHP和正则表达式完成这个?
'this is a string "that has quoted text" inside.'
我希望能够像这样爆炸它
[0]this [1]is [2]a [3]string [4]"that has quoted text" [5]inside
保持报价完整.
你可以试试下面的代码:
$str = 'this is a string "that has quoted text" inside.'; var_dump ( preg_split('#\s*("[^"]*")\s*|\s+#',$str,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY) ); Output: array(6) { [0]=> string(4) "this" [1]=> string(2) "is" [2]=> string(1) "a" [3]=> string(6) "string" [4]=> string(22) ""that has quoted text"" [5]=> string(7) "inside." }
这是above working code on dialpad的链接
更新:如需转发支持,请尝试:
preg_split('#\s*((?<!\\\\)"[^"]*")\s*|\s+#',PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);