一部の IIS Url Rewrites で使用する正規表現を設計しています。目的は、次の URL をキャプチャすることです。
- ルート ディレクトリ内の単なるファイル (ピリオドを含むことで識別) ではなく、
- クエリ文字列を含まず、かつ
- 特定のサブディレクトリのセット、特に「Account」と「Public」に属していない
私の現在の正規表現は次のようになります。
^(?!(Account)|(Public))([^./]+)(/[^?]*)?$
次のテスト セットでRegexPalを使用する:
file.aspx
Account/otherfile.aspx
Public/otherfile.aspx
otherfolder1/otherfile.aspx?stuff=otherstuff
otherfolder2/otherfolder/otherfile.aspx
otherfolder3/
otherfolder4
私の正規表現は最初の 2 つのケースを正しく無視しますが、3 番目のケースではまだ一致しています。ここでの先読みの何が問題になっていますか?