Ruby 如何使用webmock正则表达式匹配器?

Ruby 如何使用webmock正则表达式匹配器?,ruby,regex,rspec,webmock,Ruby,Regex,Rspec,Webmock,如何匹配URL,如: http://www.example.com/foo/:id/bar http://www.example.com/foo/1/bar http://www.example.com/foo/999/bar 存根请求(:post,“www.example.com”)http://www\..*?\.com/foo/\d+/bar应该适合您。存根请求的第二个参数必须是正则表达式,而不是字符串 stub_request(:post, /http:\/\/www.example.

如何匹配URL,如:

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

存根请求(:post,“www.example.com”)

http://www\..*?\.com/foo/\d+/bar应该适合您。

存根请求的第二个参数必须是正则表达式,而不是字符串

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

对于Ruby中的正则表达式,可以使用
%r{}
而不是
/
,以避免在URL中转义斜杠。例如:

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

您正在寻找与URL模式匹配的Regexp吗?@bseen
\。
正在转义
点字符,而
*?
表示任何字符(点字符表示任何字符)零次或多次(
*
为零次或多次,而
+
为1次或多次),并使其不贪婪(问号
),因此它在点击
.com
时会停止查找。此外,还可以使用许多其他字符而不是
{}
来关闭正则表达式,例如
%r()
%r''
这很有帮助,因为正则表达式数量修饰符使用大括号。因此,如果您试图将URL或其他内容与特定数量的字符(如36个字符的API键)匹配,请使用类似括号的内容关闭正则表达式。