2016-10-19 2 views
0

두 자리 숫자 ^(\d{2})$과 일치하는 정규식이 있지만이 반대를 수행해야합니다.두 자리 숫자 이외의 어떤 것과도 일치하는 정규식

HK 
VK 
112 
1H 
V1 

을하지만 다음은

14 
15 
91 
00 
99 

난 그냥 내 정규식을 반전 할 수있는 방법이 있나요 일치하지 않을 : 예를 들어, 다음 필요에 맞게? 나는 내가 일치를 확인하고 그 결과를 반전시킬 수 있다는 것을 알지만, 그건 내 제약 내에서 가능하지 않습니다.

+3

그것은 쉽게 당신의 정규식 엔진이 lookaheads을 지원하는 경우 - '^ * $'(\ D {2} $?!).. http://stackoverflow.com/a/37988661/3832970 (* 일부 문자열 * 섹션과 동일한 문자열)을 참조하십시오. –

+0

그리고 그렇지 않으면 나쁜 시간을 보내 게 될 것입니다. $^ – Siguza

+1

사람들이 다른 문자열 안에서 발생하는지 아닌지를 아는 것이 중요합니다. 현재받은 제안에는 "문자열 시작"앵커가 있으며이 경우에만 작동합니다. 정규식의 경우 일치 항목이 필요한 위치의 컨텍스트를 이해하는 것이 중요합니다. – gview

답변

-1

당신이 시도 할 수 있습니다 :

^([^\d]{2}|\d[^\d]|[^\d]\d|.|.{3}.*)$ 
+0

왜 이것을 다운 그레이드 했습니까? 그것은 작동하지 않습니까? Lookahead를 지원하지 않는 엔진에 대해서는 훨씬 쉬운 접근법이 없습니다. – mm759

관련 문제