【发布时间】:2016-07-19 15:16:54
【问题描述】:
我在 .NET 中有一个有效的 RegEx 模式:
(?>.*param1=value1.*)(?<!.*param2=\d+.*) 匹配 if:
- 查询字符串包含
param1=value1 - 但不包含
param2=一个数字
它适用于 .NET。然而 IIS URLRewrite 抱怨它不是一个有效的模式。
我不能在带有 IIS URLRewrite 的 (?<! ) 表达式后面使用零宽度否定外观吗?
请注意,我尝试在 web.config 中应用此模式(分别将 &lt; 和 &gt; 正确更改为 &lt; 和 &gt;,以及在 IIS 管理器中 - 均未成功。
【问题讨论】:
-
你不能把它简化为
^(?!.*param2=\d).*param1=value1吗?或者如果你需要匹配整个字符串,添加尾随.*:^(?!.*param2=\d).*param1=value1.* -
@WiktorStribiżew 谢谢!这行得通!然而,关于差异的问题仍然存在。我认为使用的 2 个 RegEx 引擎是等效的。
-
不,你可以看到语法不同。
标签: asp.net regex iis url-rewriting