2017-12-24 19 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

일치 항목을 후행 처리 할 수 ​​없습니까? 정규 표현식은 이미 읽기에 충분할 정도로 이미 어렵습니다. – Caramiriel

답변

1

이 필요에 따라 수 있습니다

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

참고 ((?!gif).)는 ... 그 음의 주변 모습입니다

+1

팁 :'[0-9]'를 사용하는 것이'\ d'를 사용하는 것보다 효율적입니다. https://stackoverflow.com/questions/16621738을 참조하십시오. – Marathon55