いくつかのIIS URLリライトで使用する正規表現を設計しています。なぜこの正規表現ルックアヘッドは機能しませんか?
- は、クエリ文字列が含まれていない、と
- はに属していない(ピリオドを含むことで識別される)ルートディレクトリに単にファイルされておらず、
- :意図は、URLをキャプチャすることです特定のサブディレクトリのセット、特に「アカウント」と「公開」
私の現在の正規表現は次のようになります。
^(?!(Account)|(Public))([^./]+)(/[^?]*)?$
のテストセットとRegexPal使用:
file.aspx
Account/otherfile.aspx
Public/otherfile.aspx
otherfolder1/otherfile.aspx?stuff=otherstuff
otherfolder2/otherfolder/otherfile.aspx
otherfolder3/
otherfolder4
私の正規表現は、正しく最初の二つのケースを無視し、それはまだ第三の場合に一致します。ここで先読みに何が間違っていますか?
これは、私にとってRegexPalで期待どおりに動作しているようです。あなたの例の最後の3つだけが一致するようにしたいですか? – climbage
正しい。私にとっては、2,3,5,6、そして7にマッチします。 –
それは本当に変です。実際のテストでは、それぞれの例の間に空白行を置いていました。空白行を削除すると、目的の結果が得られます。 –