Regex 用于匹配2个URL cakephp路由的正则表达式
以下是URL的两个示例: /汽车/2004-奥迪-a*4*-12149 /汽车/12149 这就是我到目前为止所做的: [0-9]-[A-Za-z]-[A-Za-z]-[0-9]|[0-9]+ 这只与我上面鼓起勇气的部分相匹配。我需要匹配下面鼓起勇气的部分: /car/2004-audi-a4-12149 /汽车/12149 这可能与正则表达式没有什么区别,但我在cakephp路由中使用了这一点:Regex 用于匹配2个URL cakephp路由的正则表达式,regex,cakephp,expression,Regex,Cakephp,Expression,以下是URL的两个示例: /汽车/2004-奥迪-a*4*-12149 /汽车/12149 这就是我到目前为止所做的: [0-9]-[A-Za-z]-[A-Za-z]-[0-9]|[0-9]+ 这只与我上面鼓起勇气的部分相匹配。我需要匹配下面鼓起勇气的部分: /car/2004-audi-a4-12149 /汽车/12149 这可能与正则表达式没有什么区别,但我在cakephp路由中使用了这一点: Router::connect( '/car/:id', array('control
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]+'
)
);
如果要匹配字符串的最后一个数字,可以使用此选项
\d+$
如果我不太清楚,你能再描述一次模式吗?如果你想匹配字符串的最后一个数字,你可以使用这个
\d+$
如果我走远了,你能试着再描述一下模式吗?原因是
\d+$
不适合你,原因是这个代码/car/:id
在路由定义中,要求斜杠后面的所有内容都与\d+$
对于/car/2004-audi-a*4*-12149
我宁愿把整个2004-audi-a*4*-12149
作为一个:slug传递给一个action
然后使用
(\d+$)
调用一个常规的php预匹配来提取id,\d+$
不适用于您的原因源于此代码/car/:id
在路由定义中,要求斜杠后面的所有内容都与\d+$
对于/car/2004-audi-a*4*-12149
我宁愿把整个2004-audi-a*4*-12149
作为一个:slug传递给一个action
然后使用
(\d+$)
调用一个常规的php预匹配来提取id,谢谢您的回复。当我测试正则表达式时,它似乎是匹配的,只是当我出于某种原因在cakephp路径中使用它时,它就不匹配了。有什么想法吗?我从来没用过CakePHP。其他人可能会更有帮助。谢谢你的回复。当我测试正则表达式时,它似乎是匹配的,只是当我出于某种原因在cakephp路径中使用它时,它就不匹配了。有什么想法吗?我从来没用过CakePHP。其他人可能会更有帮助。