如何编写正则实现URL路径匹配且排除深层子端点
正则匹配解决方案
最终实现正则
你可以直接使用如下极简规则满足你的单元测试Mock场景需求:^http:\/\/.*\/accounts\/[^\/]+$
如果需要同时兼容http和https场景,可以用下方变体:^https?:\/\/.*\/accounts\/[^\/]+$
规则说明
- 首尾的
^和$限定必须完整匹配整个URL字符串,避免部分匹配的误判 - 用
[^\/]+替换你原本使用的.+:[^\/]是排除型字符组,代表匹配所有不等于/的字符,+限定最少匹配1个字符,保证/accounts/后面必须存在路径段,同时不会匹配到包含后续斜杠的更深层级路径
匹配验证
- 可正常匹配的预期URL:
http://localhost:8080/accounts/mynewaccount - 会被拦截的深层URL:
http://localhost:8080/accounts/mynewaccount/address(/accounts/后内容包含/,无法通过[^\/]+的校验,整体匹配失败)
内容的提问来源于stack exchange,提问作者gringogordo
相关产品推荐
相关产品推荐

