정규 표현식에 대한 간단한 질문이지만 답을 찾지 못했습니다.
숫자가 정확히 두 번 또는 네 번 순서대로 나타나는지 확인하고 싶습니다 . 어떤 구문을 사용할 수 있습니까?
\d{what goes here?}
시도 \d{2,4}
했지만이 표현식도 세 자리 숫자를 허용합니다.
답변
이에 대한 구체적인 구문은 없지만이를 수행하는 방법에는 여러 가지가 있습니다.
(?:\d{4}|\d{2}) <-- alternation: four digits or two
\d{2}(?:\d{2})? <-- two digits, and optionally two more
(?:\d{2}){1,2} <-- two digits, times one or two
답변
(?<!\d)(\d{2}|\d{4})(?!\d)
이것이 올바른 방법입니다. 받아 들여진 대답은 틀렸다.
3 자리 (또는 5)와 일치합니다. 그래서 그것은 내 눈에 잘못된 것입니다 .
1) 연속 된 2, 4 자리 또는 연속 된 2-4 자리 뒤에 숫자가 없는지 확인합니다.
-
(<!)
구문은 부정적인 lookbehind입니다. -
(?!)
구문은 부정적 예측입니다.
위의 내용은 중간 문자열에서 작동합니다.
검색 문자열이 주위에 내용이없는 경우에는 사용할 수 ^
와 $
시작 및 문자열 앵커의 끝 :
^\d{4}$|^\d{2}$