정규 표현식에서의 부정
대괄호 시작 부분의 캐럿 기호 ^를 사용하여 원하는 것을 반전시킬 수 있습니다. 즉,
예를 들어 [ab] 패턴이 'a' 또는 'b' 문자를 찾는다면,
[^ab] 패턴은 'a'와 'b'를 제외한 모든 문자를 찾습니다.
예제
이 예제에서 검색 패턴은 다음과 같습니다:
문자 'x', 그다음 문자 'a'가 아니고,
'b'도 아니며, 'c'도 아닌 문자, 그다음 문자 'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
결과적으로 변수에는 다음 내용이 기록됩니다:
'xaz xbz xcz !'
예제
이 예제에서 검색 패턴은 다음과 같습니다:
문자 'x', 그다음 소문자 라틴 문자가 아닌 문자,
그다음 문자 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
결과적으로 변수에는 다음 내용이 기록됩니다:
'xaz xbz ! !'
실습 문제
다음 패턴에 맞는 문자열을 찾는 정규 표현식을 작성하세요:
숫자 '1', 그다음 'e'도 아니고 'x'도 아닌 문자,
숫자 '2'.
다음 패턴에 맞는 문자열을 찾는 정규 표현식을 작성하세요:
문자 'x', 그다음 2부터 7 사이의 숫자가 아닌 문자,
문자 'z'.
다음 패턴에 맞는 문자열을 찾는 정규 표현식을 작성하세요:
문자 'x', 그다음 대문자 라틴 문자가 1회 이상 반복되지 않는 문자열,
문자 'z'.
다음 패턴에 맞는 문자열을 찾는 정규 표현식을 작성하세요:
문자 'x', 그다음 대문자 라틴 문자도 소문자 라틴 문자도 아니고,
1부터 5 사이의 숫자도 아닌 문자가 1회 이상 반복되는 문자열,
문자 'z'.