How to match a URL like:
http://www.example.com/foo/:id/bar
http://www.example.com/foo/1/bar
http://www.example.com/foo/999/bar
stub_request(:post, "www.example.com")
How to match a URL like:
http://www.example.com/foo/:id/bar
http://www.example.com/foo/1/bar
http://www.example.com/foo/999/bar
stub_request(:post, "www.example.com")
http://www\..*?\.com/foo/\d+/bar
should work for you.
\.
is escaping the .
dot character while .*?
means any character (the dot character means any character) zero or more times (the *
is zero or more times while +
is 1 or more times) and make it non-greedy (the question mark ?
) so it stops looking as soon as it hits .com
. –
Indelicate You can use %r{}
instead of //
for your regular expression in Ruby to avoid having to escape the forward slashes in URLs. For example:
stub_request(:post, %r{\Ahttp://www.example.com/foo/\d+/bar\z})
{}
to close the regex, for example %r()
or %r''
This is helpful because the regex quantity modifier uses curly braces. So if you're trying to match a URL or something with a specific number of characters, like a 36 character API key, use something like parentheses to close the regex. –
Horsey The second argument to stub_request must be a regular expression, not a string.
stub_request(:post, /http:\/\/www.example.com\/foo\/\d+\/bar/)
http://www\..*?\.com/foo/\d+/bar
should work for you.
\.
is escaping the .
dot character while .*?
means any character (the dot character means any character) zero or more times (the *
is zero or more times while +
is 1 or more times) and make it non-greedy (the question mark ?
) so it stops looking as soon as it hits .com
. –
Indelicate © 2022 - 2024 — McMap. All rights reserved.