2011-02-25 50 views
1

幫助我有一個JAX-RS服務與以下路徑模板的作品非常好:需要用正則表達式JAX-RS路徑模板

@Path("/country/{countryIso:\\w{2}}") 

但現在我想將其更改爲

就展開
@Path("/country/{countryIso:.+}") 

這將匹配「/country/」之後的任何字符流。但我無法弄清楚如何限制這些字符到我以前使用的正則表達式。我想強制規定每個國家的ISO代碼只能提供2個字符。

例子: http://localhost/myService/country/BR/MX - 應該是有效的

http://localhost/myService/country/BR/fred - 應該是無效的和不允許的。

任何幫助是極大的讚賞。 在此先感謝。

+0

我不明白你爲什麼要擴大它。你能詳細解釋一下嗎?謝謝 – apose 2011-02-25 20:09:01

+0

我不明白你的問題。展開它?我正在努力實現的是限制可以爲國家iso代碼指定的值。它們只能是2個阿爾法字符,所以我想限制輸入從而防止錯誤的數據。我想允許在uri中指定多個iso代碼,以便客戶端可以請求多個國家/地區,如上面我的示例中所述。該請求是針對巴西和墨西哥的。 – 2011-02-25 21:40:57

回答

0

你能或者用:

@Path("/country/{countryIso:\\w{2}(/\\w{2})*}") 

這將匹配BR,BR/MX,BR/MX /廣告,但不BR /弗雷德。