2012-12-08 28 views
15

如何匹配像一個網址:如何使用webmock正則表達式匹配器?

http://www.example.com/foo/:id/bar 
http://www.example.com/foo/1/bar 
http://www.example.com/foo/999/bar 

stub_request(:帖子, 「www.example.com」)

+0

您是否在尋找正則表達式來匹配URL模式? – user2398029

+0

是的。這就對了。 –

回答

11

http://www\..*?\.com/foo/\d+/bar應該爲你工作。

+0

什麼是'.. *?'? –

+4

@BSeven''.''正在轉義.''點字符,'。*?'表示任意字符(點字符表示任何字符)零次或多次('*'是零次或多次,'+是1次或更多次),並使其非貪婪(問號'?'),因此只要遇到'.com'就停止查找。 – Jack

12

stub_request的第二個參數必須是正則表達式,而不是字符串。

stub_request(:post, /http:\/\/www.example.com\/foo\/\d+\/bar/) 
17

可以使用%r{},而不是//對Ruby的正則表達式,以避免逃跑前在URL中斜槓。例如:

stub_request(:post, %r{\Ahttp://www.example.com/foo/\d+/bar\z})