当前位置: 首页 > 知识库问答 >
问题:

Wiremock url匹配——“空。当使用正则表达式时,”?“应该是”\\?“.URL必须以/”开头”

徐昊焜
2023-03-14

我有一个urlPattern:

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

但当试图匹配它们时,我会得到“请求不匹配”和这个错误

<<<<< null. When using a regex, "?" should be "\\?". URLs must start with a /

url正则表达式也显示在终端中

^\/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=0

共有1个答案

陶唯
2023-03-14

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

这应该行得通:

"urlPattern" : "/blah/players/1000/game/tickets\\?drawFrom=(.*)&drawTo=(.*)&take=10&skip=0"
 类似资料:
  • 问题内容: 我实现了如下所示的Pattern类:http : //www.java2s.com/Code/Java/GWT/ImplementjavautilregexPatternwithJavascriptRegExpobject.htm 我想使用以下正则表达式来匹配我的String中的网址: 不幸的是,Java编译器当然无法解析该字符串,因为它不使用有效的转义序列(因为从技术上讲,以上是Ja

  • 问题内容: 在使用正则表达式时,我使用RegexBuddy。我从其库中复制了正则表达式以匹配URL。我在RegexBuddy中成功测试。但是,当我将其复制为Java 样式并将其粘贴到Java代码中时,它将无法正常工作。以下类打印: 有人知道我在做什么错吗? 问题答案: 请尝试以下正则表达式字符串。你的测试可能以区分大小写的方式进行。我添加了小写字母Alpha以及正确的字符串开头占位符。 这也适用:

  • 问题内容: 正则表达式可以匹配空格 或 字符串的开头吗? 我正在尝试用英镑符号替换缩写为GBP的货币。我可以匹配任何以GBP开头的东西,但我想更加保守一些,并在它周围寻找某些定界符。 我可以同时做后两个例子吗? 问题答案: 使用OR“ ”运算符:

  • 问题内容: 用于正则表达式的Java API 声明将匹配空格。因此,正则表达式应匹配两个空格。 这样做的目的是用单个空格替换两个连续空格的所有实例。但是,这实际上不起作用。 我对正则表达式或“空白”一词有严重的误解吗? 问题答案: 是的,你需要获取matcher.replaceAll()的结果:

  • 下面是在线测试:regex101 下面是java测试: 下面是我测试的输出: 为什么匹配项2为空?在联机匹配器中,它对两者都正确匹配。 正则表达式字符串的说明:

  • 我们得到了一些这样的内容: