我想将带逗号分隔值的字符串拆分为数组。 str_getcsv
似乎是一个不错的选择,但如果它位于值的开头和结尾,它会删除机箱字符("
)。我想保留机箱字符。考虑字符串$str = 'foo,"bar","qwe,rty"'
。 str_getcsv($str)
返回
['foo', 'bar', 'qwe,rty']
我想
['foo', '"bar"', '"qwe,rty"']
我怎样才能做到这一点?
答案 0 :(得分:0)
试试这个
$str = 'foo,"bar","qwe,rty"'
$res = preg_split('/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/', $str,-1,PREG_SPLIT_DELIM_CAPTURE);