【发布时间】:2023-04-06 20:15:02
【问题描述】:
我正在尝试清理这个正则表达式捕获组,因为它对我来说正确捕获它是一个奇怪的返回 preg_match_all 奇怪,因为它是第一次使用 preg_match_all
测试代码:: http://ideone.com/7NnrI1
正则表达式
/(?=<!--\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
)
)
)
预期回报
Array
(
[0] => Array
(
[0] => Array
(
[0] =>
[1] => 0
)
[1] => Array
(
[0] => switch_legend
[1] => 11
)
[2] => 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
)
[3] => Array
(
[0] => switch_legend
[1] => 308
)
)
[1] => Array
(
[0] => Array
(
[0] =>
[1] => 326
)
[1] => Array
(
[0] => switch_default
[1] => 337
)
[2] => 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] => switch_default
[1] => 635
)
)
)
我需要什么
我希望从匹配项中清除数组,以便不是每次捕获的相同模式都在同一个数组中,而是每次开始捕获时都会添加到同一个数组中,就像在 Expected Return 中一样.
【问题讨论】:
-
听起来像
PREG_SET_ORDER就是你想要的。 -
我是否将其添加到我的
preg_match_all中的另一个标志中? -
是的,想通了,请发表您的答案,以便我可以很高兴地给您积分。
标签: php regex preg-match-all