【发布时间】:2019-06-25 00:06:39
【问题描述】:
我正在尝试使用条件来捕获请求的查询字符串包含来自特定列表的两个或多个参数的情况。在这种情况下,我想提出一个错误。
当然,我可以使用许多“and”和“or”子句,但是随着参数列表大小的增加,这会很快变得非常混乱。因此,我选择使用正则表达式对此进行测试。
例如,如果参数列表是 [Bird,Dog,Horse],那么任何在其查询字符串中包含两个或多个这些参数的请求都应该匹配。
我使用的正则表达式是:
/(.<em>(Bird|Dog|Horse).</em>){2}
我在各种正则表达式测试器中进行了测试,并且可以正常工作。
但是,当我提出条件时:
request.querystring Matches "/(.<em>(Bird|Dog|Horse).</em>){2}"
我从来没有得到匹配。
我是否遗漏了一些特定的 APIGEE 正则表达式规则? APIGEE 可能不支持“{2}”?非常感谢!!
亚当
【问题讨论】:
-
你能把你的情况写完整吗
-
当然是:
(proxy.pathsuffix MatchesPath "/animals**") and (request.querystring Matches "/(.*(Bird|Dog|Hourse) .*){2}") AssignMessage.ErrorType.Bad_Animal_Request -
并给出您提到的测试查询字符串和路径的示例。