【问题标题】:PHP - parsing CSV into arrayPHP - 将 CSV 解析为数组
【发布时间】:2015-05-21 10:52:09
【问题描述】:

我在尝试解析包含 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 函数可能是更好的主意,但示例有点复杂(尽管为了简单起见,我们假设 set 的每个成员都可以与 \w 匹配。

任何帮助将不胜感激。

【问题讨论】:

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

标签: php regex csv pattern-matching string-matching


【解决方案1】:

假设我正确理解了您的需求,这应该可以解决问题:

<?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>';

【讨论】:

    猜你喜欢
    • 2015-03-27
    • 2018-05-16
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 2016-03-08
    相关资源
    最近更新 更多