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):
根据 ndn 的建议,您可以通过将规则中的 \d+
替换为 [\d,]+
来允许使用逗号。换句话说,将规则更改为:
'employee/renewOffer/<id_offer:[\d,]+>;<title:.+>' => 'company/renewOffer',
方括号创建一个字符 class(允许使用方括号内列出的任何字符)。因此,通过将 \d
和 ,
放入字符 class 中,可以匹配任何数字或任何逗号。但是,该解决方案仅专门允许数字和逗号。如果您希望它更灵活,可以使用 .
将其更改为接受任何字符。例如:
'employee/renewOffer/<id_offer:.+?>;<title:.+>' => 'company/renewOffer',
.+
之后的 ?
只是使 +
非贪婪。这意味着它将尽可能少地捕获,而不是尽可能多地捕获。
我有一个规则:
'employee/renewOffer/<id_offer:\d+>;<title:.+>' => 'company/renewOffer',
http://www.example.com/123;title-of-post
这与任何 SINGLE 报价有关并且效果很好,但是如果 select MULTIPLE[=24= 】 优惠。 Link 将如下所示(逗号分隔 ID):
根据 ndn 的建议,您可以通过将规则中的 \d+
替换为 [\d,]+
来允许使用逗号。换句话说,将规则更改为:
'employee/renewOffer/<id_offer:[\d,]+>;<title:.+>' => 'company/renewOffer',
方括号创建一个字符 class(允许使用方括号内列出的任何字符)。因此,通过将 \d
和 ,
放入字符 class 中,可以匹配任何数字或任何逗号。但是,该解决方案仅专门允许数字和逗号。如果您希望它更灵活,可以使用 .
将其更改为接受任何字符。例如:
'employee/renewOffer/<id_offer:.+?>;<title:.+>' => 'company/renewOffer',
.+
之后的 ?
只是使 +
非贪婪。这意味着它将尽可能少地捕获,而不是尽可能多地捕获。