앞에서 정규식 사용방법에 대해서 알아보았습니다.
정규식을 시험해볼 수 있는 Site도 있고요
정규식 lookaround
이번에는 lookaround 에 대해 알아 보겠습니다. 기존 정규식은 패턴이 일치하면 결과에 포함되나 lookaround는 그냥 패턴이 일치하는 조건을 보기만 하게됩니다. 최종적으로는 결과에 포함이 되지 않습니다.
예제)
문장:1234567890 123456 012345 A123456B
6자리 숫자가 나오는 문자열 찾는 방법입니다.
원하는 결과)
1234567890 123456 012345 A123456B
답)
(?<!\w)[0-9]{6}(?!\w)
설명)
[0-9]{6} : 숫자가 여섯개 연속됨을 의미합니다.
아래 두개는 lookaround 라는것입니다.
그 중에 4가지가 있습니다.
lookahead positive : 앞쪽 일치 확인 (?=ABC)
lookahead negative : 앞쪽 일치하지 않는지 확인 (?!ABC)
lookbehind positive : 뒤쪽 일치 확인 (?<=ABC)
lookbehind negative : 뒤쪽 일치하지 않는지 확인 (?<!ABC)
\w : 숫자나 문자를 의미합니다.
(?!\w) : 앞에 숫자나 문자가 있는지 점검해서 없는 경우에만 조건을 만족합니다.
(?<!\w) : 뒤쪽에서 숫자나 문자가 있는지 점검해서 없는 경우에만 조건을 만족합니다.
결국 앞뒤로 숫자나 문자가 없는 조건을 넣으면 독립적으로 떨어져 있는 숫자가 되게 됩니다.