首先,我知道我的问题可能与这个问题重复,但我需要的解决方案必须 100% 正确。而且我不太擅长正则表达式来实现这一点:)
我有 maaaaaaaaany 请求,其中传递的参数很少,例如...¶ms=key1=value1|key2=value2|...
. 参数可能很少,我不知道顺序。我需要的是捕获包含精确key1=myValue1
和的请求key2=myValue2
,但它们可以是:
key1=myValue1|key2=myValue2
key2=myValue2|key1=myValue1
key1=myValue1|key3=myValue3|key2=myValue2
甚至更复杂。已知情况:
params
只是请求的一部分,所以它可以是?something=other¶ms=key1=value1|key2=value2
或?params=key1=value1|key2=value2&something=other
- 内部
params
参数没有白色字符,只有成对的key=value
's(用 分隔|
)
需要明确的是:我知道两对 key=value 所以正则表达式仅用于匹配包含这 2 对的请求。请求可以以不同的方式排序。我无权访问请求本身,我只处理保存的数据(作为字符串)。
将使用正则表达式的语言是 PHP。但是我无法访问完整的代码,因为我们在 Web 应用程序界面中声明了正则表达式。
我想我需要两个积极的前瞻,就像(?=[^\s]*(key1=myValue1)[^\s]*){1}(?=[^\s]*(key2=myValue2)[^\s]*){1}
但我无法让它工作并且时钟在滴答作响......