【发布时间】:2014-09-06 13:09:05
【问题描述】:
我在我的页面中使用了一个特殊的标签。这个标签是这样组成的;
输入:
{{ module : menu : params(mainmenu , index) }}
现在我遇到的问题是我的正则表达式没有读取第二个参数,所以我无法访问这个参数。
这是我的标签,我遇到了{{module:menu:params(mainmenu, index)}} 的问题
$str = 'params(null)';
preg_match_all('{
# matches "null" in " null)"
(?<=\s)[^,]+(?=\))
|
# matches "null" in "(null)"
(?<=\()[^,]+(?=\))
|
# matches "null" in "params(null"
(?<=params\()[^,]+
|
# matches "true" in ", true" and ""foo"" in ", "foo""
(?<=,\s)[^,]+
}x', $str, $matches);
现在正则表达式开始工作,只给了我 1 个值,在带有参数的钩子之间。
PHP 给我的数组是:
$array = array
(
[0] => module
[1] => menu
[2] => params(mainmenu, index)
);
正则表达式用于匹配参数,因此它为我提供了我提供给标签的所有参数。
输出 现在只读取第一个参数,它给了我这个结果;
Array
(
[0] => Array
(
[0] => mainmenu
)
)
想要的/预期的输出 但我想要/需要这个
Array
(
[0] => Array
(
[0] => mainmenu
[1] => index
)
)
我希望我的解释足够好,如果不是请评论,这样我可以更清楚。
【问题讨论】:
-
您的输入和预期输出是什么?
-
一切都在那里。我会提供更多有关此的信息,以便您更清楚地了解。
-
您的问题中显示了三种不同的输入。您的代码中的一个是“params(null)”。如果您编辑代码以显示您正在使用的实际输入,那就太好了。
-
当我将您的代码更改为
$str = '{{module:menu:params(mainmenu, index)}}';时,我会得到您想要/预期的输出......