以下是网址的两个示例:
/汽车/的 2004 -audi-A * 4 * - 12149
/汽车/的 12149
这是我到目前为止所做的:
[0-9] - [A-ZA-Z] - [A-ZA-Z] - [0-9] | [0-9] +
这只与我上面提到的部分相匹配。我需要匹配下面鼓励的部分:
/汽车/ 2004-奥迪-A4-的 12149
/汽车/的 12149
它可能与正则表达式没有区别,但我在cakephp路线中使用它:
Router::connect(
'/car/:id',
array('controller' => 'cars', 'action' => 'view'),
array(
'pass' => array('id'),
'id' => '[0-9]-[A-Za-z]-[A-Za-z]-[0-9]|[0-9]+'
)
);
答案 0 :(得分:1)
如果你想匹配字符串的最后一个数字,你可以使用它。
\d+$
如果我离开了,你能尝试再次描述这种模式吗?
答案 1 :(得分:0)
\d+$
不起作用的原因源于此代码/car/:id
在您的路线定义中,您在斜线后要求所有的蛋糕与\d+$
匹配
/car/2004-audi-a*4*-12149
我宁愿将整个2004-audi-a*4*-12149
作为:slug传递给一个动作
然后调用常规的php preg_match来使用(\d+$)