我有这个正则表达式用于重写网址:
<from>^/page/([0-9]+)/order/(.*)/by/(.*)/composition/(.*)/location/(.*)/price_min/(.*)/price_max/(.*)/industry/(.*)/type/(.*)$</from>
<to>/page=$1&order=$2&by=$3&composition=$4&location_id=$5&price_min=$6&price_max=$7&industry_id=$8&type_id=$9</to>
我想匹配下面的网址,但没有匹配。
/页/ 2 /顺序/ ID /由/降序/组合物/ 1 /位置/无/ PRICE_MIN / 2 / PRICE_MAX / 2 /工业/ 2 /类型/ 3
答案 0 :(得分:1)
考虑使用以下方法:
^/page/([0-9]+)/order/(.+?)/by/(.+?)/composition/(.+?)/location/(.+?)/price_min/(.+?)/price_max/(.+?)/industry/(.+?)/type/(.+?)$
你的正则表达式有两件事:
.+
代替.*
,因为/
和/
之间始终存在数据。 ?
,这意味着它不会贪婪。它相当于写([^/]+)
,这意味着多次匹配除/
以外的任何字符。