PHP-将CSV解析为数组

PHP-将CSV解析为数组,php,regex,csv,pattern-matching,string-matching,Php,Regex,Csv,Pattern Matching,String Matching,当我试图解析包含以下定义的FSM的字符串时,我遇到了一个问题: {{states},{symbols}, {transitions}, starting_symbol, {set of finishing states}} 例如: {{start, mid, end}, {'a', 'b'}, { start 'a' -> end}, start, {end}} 与在这里编写解析器不同,我希望通过正则表达式来解析它 我的问题在于理解正则表达式匹配组,以及如何将字符串(如“start,m

当我试图解析包含以下定义的FSM的字符串时,我遇到了一个问题:

{{states},{symbols}, {transitions}, starting_symbol, {set of finishing states}}
例如:

{{start, mid, end}, {'a', 'b'}, { start 'a' -> end}, start, {end}}
与在这里编写解析器不同,我希望通过正则表达式来解析它

我的问题在于理解正则表达式匹配组,以及如何将字符串(如
“start,mid,end”
拆分为数组
[“start”,“mid”,“end”]
(假设使用分隔符

我知道使用内置csv函数可能更好,但示例要复杂一些(尽管为了简单起见,让我们假设集合的每个成员都可以由
\w
匹配)


任何帮助都将不胜感激。

假设我正确理解了您的需求,这应该可以做到:

<?php

$string = "{{start, mid, end}, {'a', 'b'}, { start 'a' -> end}, start, {end}}";

preg_match( "#\{\{(.*?)\}#", $string, $matches );

$parts = split(',', $matches[1] );

echo '<pre>';
print_r( $parts );
echo '</pre>';

看起来一点也不像csv澄清一下,我只想解析“开始、中间、结束”部分。