类似 URL 的正则表达式模式匹配
Regex Pattern Matching for similar URL
我需要为不同的网址发送不同的响应。但是我正在使用的正则表达式不起作用。
有问题的两个 Regex 是
"/v1/users/[^/]+/permissions/domain/HTTP/"
(例如:http://localhost:4544/v1/users/10feec20-afd9-46a0-a3fc-9b2f18c1d363/permissions/domain/HTTP)
和
"/v1/users/[^/]+/"
(例如:http://localhost:4544/v1/users/10feec20-afd9-46a0-a3fc-9b2f18c1d363)
我不知道如何在“[^/]+/”之后停止正则表达式匹配。两种模式 return 结果相同。就好像由于正则表达式,它们都是相同的 URL。模式匹配发生在使用匹配谓词的 mountebank 模拟服务器中。任何帮助,将不胜感激。谢谢。
正则表达式 "/v1/users/[^/]+/"
匹配两个 url。您要求它匹配“/v1/users/”加上除“/”后跟斜线之外的任何内容。这在较长的 URL 和较短的 URL 中都会发生,这就是它匹配的原因。
几个选项:
您可以匹配较长的 url 而不是较短的:
"/v1/users/[^/]+/.+"
这匹配 http://localhost:4544/v1/users/10feec20-afd9-46a0-a3fc-9b2f18c1d363/permissions/domain/HTTP, but not http://localhost:4544/v1/users/10feec20-afd9-46a0-a3fc-9b2f18c1d363/
您也可以通过锚定结尾来匹配短的:
"/v1/users/[^/]+/$"
这匹配短 URL 但不匹配长
我需要为不同的网址发送不同的响应。但是我正在使用的正则表达式不起作用。
有问题的两个 Regex 是
"/v1/users/[^/]+/permissions/domain/HTTP/"
(例如:http://localhost:4544/v1/users/10feec20-afd9-46a0-a3fc-9b2f18c1d363/permissions/domain/HTTP)
和
"/v1/users/[^/]+/"
(例如:http://localhost:4544/v1/users/10feec20-afd9-46a0-a3fc-9b2f18c1d363)
我不知道如何在“[^/]+/”之后停止正则表达式匹配。两种模式 return 结果相同。就好像由于正则表达式,它们都是相同的 URL。模式匹配发生在使用匹配谓词的 mountebank 模拟服务器中。任何帮助,将不胜感激。谢谢。
正则表达式 "/v1/users/[^/]+/"
匹配两个 url。您要求它匹配“/v1/users/”加上除“/”后跟斜线之外的任何内容。这在较长的 URL 和较短的 URL 中都会发生,这就是它匹配的原因。
几个选项:
您可以匹配较长的 url 而不是较短的:
"/v1/users/[^/]+/.+"
这匹配 http://localhost:4544/v1/users/10feec20-afd9-46a0-a3fc-9b2f18c1d363/permissions/domain/HTTP, but not http://localhost:4544/v1/users/10feec20-afd9-46a0-a3fc-9b2f18c1d363/
您也可以通过锚定结尾来匹配短的:
"/v1/users/[^/]+/$"
这匹配短 URL 但不匹配长