Regex 如何使用正则表达式提取引用文本中的多个符号/子字符串

Regex 如何使用正则表达式提取引用文本中的多个符号/子字符串,regex,Regex,有一个字符串包含一些用引号括起来的子字符串。如何在所有子字符串中提取逗号s 例如,给定具有两个子字符串的字符串: aaa,“aa,bb,cc,d”,ccc,ddd,FDDSFDF,dfds,fd,f,ggg 需要在引用的子字符串中获取逗号: aaa,'aa,bb,cc,d',ccc,ddd,'FDDSFDF,dfds,fd,f',ggg 我想出了这个正则表达式,但它是错误的: ('(.*?()(.*?)) 您可以尝试此正则表达式(?您实际要解决的问题是什么?请注意,一般情况下,您应该在此处使用

有一个字符串包含一些用引号括起来的子字符串。如何在所有子字符串中提取逗号s

例如,给定具有两个子字符串的字符串:

aaa,“
aa,bb,cc,d
”,ccc,ddd,
FDDSFDF,dfds,fd,f
,ggg

需要在引用的子字符串中获取逗号:

aaa,'aa
bb
cc
d',ccc,ddd,'FDDSFDF
dfds
fd
f',ggg


我想出了这个正则表达式,但它是错误的:

('(.*?()(.*?))

您可以尝试此正则表达式<代码>(?您实际要解决的问题是什么?请注意,一般情况下,您应该在此处使用CSV解析器,而不是正则表达式。@TimBiegeleisen这只是一个示例,与CSV无关。试试这个(如果您的正则表达式引擎支持回溯):(?
// PHP 5.3.0+

$subject = "aaa, 'aa,bb,cc,d', ccc, ddd, 'fddsfdfdf,dfds,fd,f', ggg";
$pattern = "/'[^']+'/";
preg_replace_callback($pattern, function($data){
    echo preg_filter('/[^,]+/','', $data[0]);
}, $subject);

// Output: ,,,,,,