PHP-将CSV解析为数组
当我试图解析包含以下定义的FSM的字符串时,我遇到了一个问题: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
{{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澄清一下,我只想解析“开始、中间、结束”部分。