2017-04-18 2 views
0

나는 특정 범위를 벗어난 숫자에 대한 정규 표현식을 찾고 있습니다.범위 밖의 정규식 숫자

허용되지 않는 숫자는 v10,v11,v12,v13,v14,v15입니다. 이 정규 표현식은 v(1[0-5])이지만 은 이 아니며은 6 개의 숫자 이외의 숫자를 원합니다.

v1 - accepted. Need regex for this 
v5 - accepted. Need regex for this 
v100 - accepted. Need regex for this 
v51 - accepted. Need regex for this 
v10...v15 - not accepted. I already have a regex for this. 

답변

1

일치를 더 엄격하게 만들기 위해 앵커 또는 경계를 사용하십시오.

\bv(1[0-5])\b 

또는

^v(1[0-5])$ 

데모 : https://regex101.com/r/TPkTom/1/

앵커/경계가 정확히 일치해야합니다. 그것들이 없으면 표현의 일부만 일치해야합니다. 업데이트 당

부정적인 내다보기가 작동합니다 :

v(?!1[0-5]\b)\d+ 

데모 : https://regex101.com/r/TPkTom/4/

또는 사용할 수 PCRE 동사 :

\bv1[0-5]\b(*SKIP)(*FAIL)|v\d+ 

https://regex101.com/r/TPkTom/3/

+0

사실은 분명했다 질문을 편집하여 너 좀 봐 주 시겠어요 – yregex2017

+0

@ yregex2017 오, 그래서 일종의 혼합. 답변이 업데이트되었습니다. – chris85

+0

당신은 천재입니다! 고마워. – yregex2017