2010-03-17 7 views
1

이 정규 표현식을 작성하는 방법을 알아 내려고 노력했습니다. URL 재 작성을 수행하기 위해 IIS 6 용 모듈 인 ISAPI_Rewrite에 사용됩니다.RegEx, 포함하지 않을 경우 일치

URL을 /hg/<parameter>에 입력하고 싶은 경우 /hg/hgwebdir.cgi/<parameter>으로 다시 쓸 수 있습니다.

^/hg/(.*)을 사용하여 일치했습니다.

URL이 /hg/hgwebdir.cgi/<parameter> 인 경우 문제가 발생합니다. 정규식은 일치하지 않아야합니다. 이 URL에 위 정규식을 사용하면 올바르지 않은 /hg/hgwebdig.cgi/hgwebdig.cgi/<parameter>으로 다시 작성됩니다.

일치하는 패턴을 만들 수 있습니까?

답변

3

이 작업을 수행하기 위해 negative lookahead을 사용할 수

"^/hg/(?!hgwebdir.cgi)(.*)" 

http://www.regular-expressions.info/tutorial.html 정규 표현식에 대한 좋은 튜토리얼입니다. =)

+0

대단히 감사합니다. –

+0

그러나 regexps에 대한 구문을 찾을 때 올바른 regexp 방언에 대한 정보를 얻으십시오! perl, java, .NET 및 기타 많은 언어/프로그램에 regexps가 있으며 많은 작지만 중요한 차이점이 있습니다. 예를 들어, 내가 마지막으로 부정적 시각을 필요로했을 때, 그것은 vim에 있었고, 표현은 Jens가 여기서 쓴 것과 많이 다른 것처럼 보였습니다. –

+0

@Carl : 내가 링크 된 사이트는 다른 정규식 구현의 몇 가지 단점을 다룹니다. vim이 아니지만 =) – Jens

관련 문제