PHP获取不包含在内的逗号分隔值

PHP获取不包含在内的逗号分隔值,php,regex,Php,Regex,有这样的字符串: 5, "hi all, this is a comma", 'text without comma', 5,'a',',',"," 我想将字符串拆分为数组,但仍有一些值包含逗号(用单引号或双引号括起来) 最快的正则表达式是什么(explode在这里不起作用) 我可以使用str_getcsv但是字符串有时用单引号括起来,有时用双引号括起来!需要更智能的工具您可以使用csv解析器,或使用以下模式进行预分割: $pattern = '~(?:\'[^\']*\'|"[^"]*"|)

有这样的字符串:

5, "hi all, this is a comma", 'text without comma', 5,'a',',',","
我想将字符串拆分为数组,但仍有一些值包含逗号(用单引号或双引号括起来)

最快的正则表达式是什么(explode在这里不起作用)


我可以使用
str_getcsv
但是字符串有时用单引号括起来,有时用双引号括起来!需要更智能的工具

您可以使用csv解析器,或使用以下模式进行预分割:

$pattern = '~(?:\'[^\']*\'|"[^"]*"|)\K(,|$)~';

这是文件吗?然后使用
fgetcsv()
No,这是用户输入/套接字recivi可以使用
str_getcsv
但是字符串有时用单引号括起来,有时用双引号括起来!需要更聪明的东西吗