使用PHP提取并解析一个大字符串

时间:2012-07-12 14:26:54

标签: php string parsing

我想使用php从字符串中提取标签和数据。字符串如下所示:

 Label: Info;
 Label1: Info1;
 Label2: Info2;
 Label3: Info3;
 ..............

我的解决方案是对每个标签使用strpos,将其保留在变量中并提取该标签的数据太慢。你能建议我另一种方法吗?

1 个答案:

答案 0 :(得分:2)

我当然不是REGEX的专家,但这是我提出的解决方案。

$ptn = "/(Label[0-9]?):?.?(.+);/";
$str = "Label: Info;
Label1: Info1;
Label2: Info2;
Label3: Info3;";
preg_match_all($ptn, $str, $matches, PREG_SET_ORDER);

现在在print_r上使用$matches会返回以下内容:

Array
(
    [0] => Array
        (
            [0] => Label: Info;
            [1] => Label
            [2] => Info
        )

    [1] => Array
        (
            [0] => Label1: Info1;
            [1] => Label1
            [2] => Info1
        )

    [2] => Array
        (
            [0] => Label2: Info2;
            [1] => Label2
            [2] => Info2
        )

    [3] => Array
        (
            [0] => Label3: Info3;
            [1] => Label3
            [2] => Info3
        )

)