我有这种网站的网址结构:
/some_url/{slug}/
其中 {slug} 包含有关字段排序(仅价格和名称)、订单方向(asc、desc)、限制行(30、40 或空)和演示类型(列表或空)的信息。例如:
/some_url/price_desc_30_list/
如您所见,每个组都用下划线分隔,但仅适用于中间组。每个组都是可选的,在前面的示例中 url 由三组price_desc
, 30
,list
组成。我想要的是获得每个组的价值。
目前我的正则表达式是(?:(price|name)_(asc|desc))?(?:_?(30|40))?(?:_?(list))?
,但是下划线有问题(只有在前一个组存在时,我才需要它们在组的开头)所以这个 url/some_url/_30/
和这/some_url/30/
两个都将匹配,但我只需要/some_url/30/