Regex Wiremock url匹配-";无效的当使用正则表达式时,“是吗?”&引用;应该是“\\”吗&引用;。URL必须以“/”开头;

Regex Wiremock url匹配-";无效的当使用正则表达式时,“是吗?”&引用;应该是“\\”吗&引用;。URL必须以“/”开头;,regex,wiremock,Regex,Wiremock,我有一个模式: "urlPattern" : "^\/blah\/players\/1000\/game\/tickets\\?drawFrom=(.*)&drawTo=(.*)&take=10&skip=0" 但是当尝试匹配它们时,我得到了“请求不匹配”和这个错误 <<<<< null. When using a regex, "?" should be "\\?". URLs must start with a / 我使用了\\?而不

我有一个模式:

"urlPattern" : "^\/blah\/players\/1000\/game\/tickets\\?drawFrom=(.*)&drawTo=(.*)&take=10&skip=0"
但是当尝试匹配它们时,我得到了“请求不匹配”和这个错误

<<<<< null. When using a regex, "?" should be "\\?". URLs must start with a /
我使用了
\\?
而不是
\?
,所以我一直在思考问题可能是什么。我在其他地方也使用了几乎相同的正则表达式,效果很好

编辑:这是实际请求的样子

/blah/players/1000/game/tickets?drawFrom=2018-01-01&drawTo=2018-02-02&take=10&skip=0

您的错误是因为URL不需要前面的
^
,因为WireMock知道URL以
/
开头。此外,您不需要转义
/
字符

这应该起作用:

"urlPattern" : "/blah/players/1000/game/tickets\\?drawFrom=(.*)&drawTo=(.*)&take=10&skip=0"

你能把请求也发出去吗?终端中是否有最接近的匹配输出?查询可能会与正则表达式混淆,因此如果看不到您所请求的内容,可能很难看到为什么缺少匹配项。很抱歉,回复太晚。这就是请求的样子/blah/players/1000/game/tickets?drawFrom=2018-01-01&drawTo=2018-02-02&take=10&skip=0Hmm。。。两件事:1。尝试将url设置为以。。。“/blah/…”。我认为您不需要转义
/
或以
^
开头字符串。我认为这是你所得到的错误的实际相关部分。2.如果这不起作用,请尝试分别匹配url和查询。您可以使用urlPath/urlPathPattern检查url,然后使用一个单独的“queryParameters”:{“drawFrom”:{“matches”:“*”}}(很抱歉格式不好)啊,在没有转义和^worked的情况下启动它。非常感谢。您可以将其作为答案发布,如果您愿意,我会将其标记为已接受的答案:)
"urlPattern" : "/blah/players/1000/game/tickets\\?drawFrom=(.*)&drawTo=(.*)&take=10&skip=0"