You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wiremock中含查询参数的urlPattern正则匹配问题求助

Wiremock URL正则匹配解决方案

正确的正则表达式

使用以下正则可同时匹配两种URL:

^/household/[^/]+/entitlements(\\?.*)?$

正则说明

  • ^ 和 $:锚定整个URL路径,避免部分匹配无关路径
  • /household/[^/]+/entitlements:匹配固定路径+UUID部分([^/]+精准匹配不含斜杠的UUID,比.+更安全,不会过度匹配)
  • (\\?.*)?:可选的查询参数部分,其中:
    • \\?:JSON配置中需双重转义反斜杠,才能正确表示正则里的查询参数起始符?
    • .*:匹配任意查询参数内容(若需精准匹配includeFutureDated=true,可替换为\\?includeFutureDated=true)
    • 最后的?表示该部分可选,同时支持有无查询参数的URL

完整配置示例

{
  "scenarioName": "CPM Get Entitlements:Error - CPM_10000 - DOWNSTREAM_ERROR - Status 500",
  "request": {
    "method": "GET",
    "urlPattern": "^/household/[^/]+/entitlements(\\?.*)?$"
  },
  "response": {
    "status": 500,
    "body": "{\"code\": \"CPM_10000\",\"description\": \"some description\"}"
  }
}

之前匹配失败的原因

  1. 转义错误:JSON配置文件中,正则特殊字符(如?)需用双重反斜杠\\转义,直接写?会被JSON解析器当成特殊字符处理,而非正则的一部分
  2. 过度匹配风险:使用.+可能匹配到含额外斜杠的错误路径(比如/household/xxx/entitlements/yyy),[^/]+的匹配范围更精准
  3. 未锚定匹配范围:缺少^和$可能导致Wiremock匹配到包含目标路径的更长URL,锚定后确保只匹配完整的目标路径

内容的提问来源于stack exchange,提问作者user2232357

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 22:10:34