У меня есть специальный тег, который я использую на своих страницах. Этот тег составлен так:Regex не полностью работает
Вход: {{ 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, Что между крючками с Params.
Что PHP дает мне в массив:
$array = array
(
[0] => module
[1] => menu
[2] => params(mainmenu, index)
);
Регулярное выражение есть, чтобы соответствовать Params так что это дает мне все, что я Params дать в теге.
Выход Теперь читается только первый параметр, и он дает мне этот результат;
Array
(
[0] => Array
(
[0] => mainmenu
)
)
Требуются/ожидается выход Но я хочу/нужна эта
Array
(
[0] => Array
(
[0] => mainmenu
[1] => index
)
)
Я надеюсь, что мой объяснив был достаточно хорош, если его нет, пожалуйста, комментарий, так что я могу сделать его еще более четко.
Каков ваш вклад и ожидаемый результат? –
Его все там. Я поставил больше информации об этом, чтобы сделать его более понятным для вас. –
В вашем вопросе есть три разных ввода. В вашем коде есть «params (null)». Было бы здорово, если бы вы отредактировали свой код, чтобы показать фактический ввод, который вы используете. –