您需要将字符串拆分为一个数组。线:
routes[0][1].action.controller[0].class
大批:
array(
[0]=> string(6) "routes",
[1]=> string(3) "[0]",
[2]=> string(3) "[1]",
[3]=> string(6) "action",
[4]=> string(10) "controller",
[5]=> string(3) "[0]",
[6]=> string(5) "class"
)
甚至更适合:
array(
[0]=> string(6) "routes",
[1]=> int(0),
[2]=> int(1),
[3]=> string(6) "action",
[4]=> string(10) "controller",
[5]=> int(0),
[6]=> string(5) "class"
)
这是我的代码
preg_match_all(
'/([a-z0-9_]+)(\[\d+\])*(\.|$)/',
'routes[0][0].action.controller[0].class',
$matches
);
但我明白了
array (
0 =>
array (
0 => 'routes[0][1]',
1 => 'action',
2 => 'controller[0]',
3 => 'class',
),
1 =>
array (
0 => 'routes',
1 => 'action',
2 => 'controller',
3 => 'class',
),
2 =>
array (
0 => '[1]',
1 => '',
2 => '[0]',
3 => '',
),
)
我们正在寻找方括号中的单词或数字
正则表达式 101 上的演示
eval.in 上的演示
并获得不带括号的数字
eval.in 上的演示
例子