정규식에서 문자 집합 반전
대괄호 시작 부분의 캐럿 '^'을 사용하여
원하는 것을 반전시킬 수 있습니다.
예를 들어, 패턴 [ab]가
문자 'a' 또는 'b'를 찾는다면,
패턴 [^ab]는 'a'와 'b'를
제외한 모든 문자를 찾습니다.
예제
이 예제에서 검색 패턴은 다음과 같습니다:
문자 'x', 그다음 문자 'a'가 아니고,
'b'도 아니며, 'c'도 아닌 문자,
그다음 문자 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
코드 실행 결과:
'xax xbx xcx !'
예제
이 예제에서 검색 패턴은 다음과 같습니다:
문자 'x', 그다음 소문자 라틴 문자가 아닌 문자,
그다음 문자 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
코드 실행 결과:
'xaz xbz ! !'
실습 문제
다음 패턴에 해당하는 문자열을 찾는 정규식을 작성하세요:
숫자 1, 그다음 'e'도 'x'도 아닌 문자,
숫자 2.
다음 패턴에 해당하는 문자열을 찾는 정규식을 작성하세요:
문자 'x', 그다음 2부터 7 사이의 숫자가 아닌 문자,
문자 'z'.
다음 패턴에 해당하는 문자열을 찾는 정규식을 작성하세요:
문자 'x', 그다음 대문자 라틴 문자가 1회 이상 반복되지 않는 문자,
문자 'z'.
다음 패턴에 해당하는 문자열을 찾는 정규식을 작성하세요:
문자 'x', 그다음 대문자 또는 소문자 라틴 문자가 아니고
1부터 5 사이의 숫자도 아닌 문자가 1회 이상 반복,
문자 'z'.