Yii url规则与正则表达式

时间:2015-08-19 11:54:10

标签: regex yii rules

我有一条规则:

'employee/renewOffer/<id_offer:\d+>;<title:.+>' => 'company/renewOffer',

http://www.example.com/123;title-of-post

与任何 SINGLE 优惠相关,这很有效,但如果选择 MULTIPLE 提供此规则应该如何看待。链接将如下所示(以逗号分隔的ID&#39; s):

http://www.example.com/123,456,12,5;title-of-post

1 个答案:

答案 0 :(得分:0)

根据ndn的建议,您可以使用\d+替换规则中的[\d,]+来允许使用逗号。换句话说,将规则更改为:

'employee/renewOffer/<id_offer:[\d,]+>;<title:.+>' => 'company/renewOffer',

方括号创建一个字符类(允许在括号内列出的任何字符)。因此,通过在字符类中放置\d,,允许任何数字或任何逗号匹配。但是,该解决方案仅特别允许数字和逗号。如果您希望它更灵活,可以使用.将其更改为接受任何字符。例如:

'employee/renewOffer/<id_offer:.+?>;<title:.+>' => 'company/renewOffer',

?之后的.+只会使+非贪婪。这意味着它将尽可能少地捕获而不是尽可能多地捕获它。