2009-07-20 2 views
35

정규 표현식에서 문자열 부정을 수행 할 수 있습니까? 문자열 ".."을 포함하지 않는 모든 문자열을 일치시켜야합니다. ^[^\.]*$을 사용하여 "."이 포함되지 않은 모든 문자열과 일치시킬 수 있지만 한 문자 이상 일치해야합니다. 나는 단순히 ".."을 포함하는 문자열을 일치시킨 다음 동일한 결과를 얻기 위해 일치의 반환 값을 무효화 할 수 있지만 가능한지 궁금했습니다.정규식을 사용한 문자열 부정화

+0

[정규 표현식 및 전체 문자 그룹 무효화] (http://stackoverflow.com/questions/977251/regular-expressions-and-negating-a-whole-character-group) – Unihedron

답변

42

당신은 부정적인 lookaheads을 사용할 수 있습니다 : 그것은 어디 문자열의 두 기간의 순서를 찾을 수 있다면 일치하지에 표현 원인

^(?!.*\.\.).*$ 

합니다.

+6

아, 닌자 편집 기술 :) +1 –

5
^(?:(?!\.\.).)*$ 

은 문자열의 아무 곳이나 두 개의 연속 점이없는 경우에만 일치합니다.

관련 문제