我正在设计一个正则表达式以在某些 IIS Url Rewrites 中使用。目的是捕获以下网址:
- 不只是根目录中的一个文件(通过包含句点来标识),并且
- 不包含查询字符串,并且
- 不属于一组特定的子目录,特别是“Account”和“Public”
我当前的正则表达式看起来像:
^(?!(Account)|(Public))([^./]+)(/[^?]*)?$
将RegexPal与以下测试集一起使用:
file.aspx
Account/otherfile.aspx
Public/otherfile.aspx
otherfolder1/otherfile.aspx?stuff=otherstuff
otherfolder2/otherfolder/otherfile.aspx
otherfolder3/
otherfolder4
我的正则表达式正确地忽略了前两种情况,但它仍然匹配第三种情况。这里的前瞻有什么问题?