无论如何清理正则表达式捕获组?

时间:2015-03-22 18:49:19

标签: php regex preg-match-all

我正在尝试清理这个正则表达式捕获组,因为它正确地捕获了我,preg_match_all对我来说很奇怪,因为它是第一次使用{ {1}}

测试代码:: http://ideone.com/7NnrI1

正则表达式

preg_match_all

返回

/(?=<!--\sBEGIN\s(.*?)\s-->(.*?)(?=<!--\sEND\s(.*?)\s-->))/s

预期回报

Array
(
[0] => Array
    (
        [0] => Array
            (
                [0] => 
                [1] => 0
            )

        [1] => Array
            (
                [0] => 
                [1] => 326
            )

    )

[1] => Array
    (
        [0] => Array
            (
                [0] => switch_legend
                [1] => 11
            )

        [1] => Array
            (
                [0] => switch_default
                [1] => 337
            )

    )

[2] => Array
    (
        [0] => Array
            (
                [0] => 
<ul id="picture_legend">
    <li><img src="{FORUM_NEW_IMG}" alt="{L_NEW_POSTS}" />{L_NEW_POSTS}</li>
    <li><img src="{FORUM_IMG}" alt="{L_NO_NEW_POSTS}" />{L_NO_NEW_POSTS}</li>
     <li><img src="{FORUM_LOCKED_IMG}" alt="{L_LOCKED}" />{L_LOCKED}</li>
</ul>

                [1] => 28
            )

        [1] => Array
            (
                [0] => 
<ul id="picture_legend">
    <li><img src="{FORUM_NEW_IMG}" alt="{L_NEW_POSTS}" />{L_NEW_POSTS}</li>
    <li><img src="{FORUM_IMG}" alt="{L_NO_NEW_POSTS}" />{L_NO_NEW_POSTS}</li>
     <li><img src="{FORUM_LOCKED_IMG}" alt="{L_LOCKED}" />{L_LOCKED}</li>
</ul>

                [1] => 355
            )

    )

[3] => Array
    (
        [0] => Array
            (
                [0] => switch_legend
                [1] => 308
            )

        [1] => Array
            (
                [0] => switch_default
                [1] => 635
            )

    )

)

我需要什么

我希望数组从匹配中清除,因此不是每个相同模式的捕获都在同一个数组中,而是每次开始捕获它时都会像{{{{{{{ 1}}谢谢。

1 个答案:

答案 0 :(得分:0)

听起来像PREG_SET_ORDER就是你想要的。 - 马里奥