Yii url 正则表达式规则

Yii url rule with regular expression

我有一个规则:

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

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

这与任何 SINGLE 报价有关并且效果很好,但是如果 select MULTIPLE[=24= 】 优惠。 Link 将如下所示(逗号分隔 ID):

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

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

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

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

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

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