2017-12-24 21 views
0

私は以下の式を持っています。C#Reg Exから単語を除外するにはどうすればよいですか?

それらの間の唯一の違いは、ルート(.GIFとの.html)

crystal.ipac.caltech.edu - - [17/Jul/1995:20:00:23 -0400] "GET /facts/faq04.gif HTTP/1.0" 200 27063 

crystal.ipac.caltech.edu - - [17/Jul/1995:20:00:23 -0400] "GET /facts/faq04.html HTTP/1.0" 200 27063 

であり、これは、上記のもののために使用される正規表現です。そしてそれは両方に一致します。

"^([^\\>]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3}) (\\d+|-)" 

しかし、私は .GIF拡張子の最初の文字列を除外する必要があります。どうすればいいですか?

おかげ

+0

通常、このような除外は '負のルックahead'を使用して実装されています。 –

+0

マッチを後処理できませんか? Regexはすでに読んでいるほど難しいです。 – Caramiriel

答えて

1

これはあなたのニーズに合うことがあります。

"^([^\\>]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(((?!gif).)+?)\" (\\d{3}) (\\d+|-)" 

((?!gif).)は...それは負の周りを見ます

+1

ヒント: '[0-9]'を使う方が '\ d'を使う方が効率的です。 https://stackoverflow.com/questions/16621738を参照してください。 – Marathon55

関連する問題