정규표현식이란?
어떠한 값에 대해서 그 값이 한글로만 구성되어 있는지 영어로만 구성되어 있는지 또는 어떤 특별한 패턴을 지키고 있는지에 대해 체크할 때 사용하는 방식. 예를 들어 회원가입을 할 때 전화번호 또는 이메일 주소가 옳은 형식을 갖추었는지를 검사할 수 있다.
preg_match() : 정규 표현식의 패턴을 사용할 때 사용되는 함수
구성 |
preg_match(패턴, 검사할 텍스트, 반환할 패턴 결과를 받을 변수) |
패턴은 싱글쿼테이션 '과 슬래시 / 사이에 입력한다.
첫 번째 글자를 적용하는 기호는 캐럿 기호 이다.
끝나는 글자를 적용하는 기호는 달러 기호 $이다.
문자열의 값이 a인지 확인하는 패턴식을 적용한 예제이다.
<?php
$pattern = '/^a$/';
$str = 'a';
if (preg_match($pattern, $str, $matchResult)) {
echo "값 {$str}는 정규식 표현에 적합한 값이다.";
} else {
echo "값 {$str}는 정규식 표현에 적합하지 않은 값이다.";
}
?>
패턴식은 검사할 바이트 수나 횟수를 지정하지 않으면 기본적으로 1byte를 검사한다.
고로 변수 str에 aaa를 넣게 되면 else 문이 출력된다.
1byte 이상의 값을 검사하기 위해서는 패턴식을 검사하는 값 뒤에 1byte 이상을 검사하는 기호로 플러스 + 를 사용한다.
변수 pattern을 '/^a+$/'로 변경하면 문자열이 1byte 이상이여도 패턴식 검사에 문제가 없다.
정규표현식 한글 검사
한글은 '가'로 시작하여 '힣'으로 끝나며 한 글자당 3byte를 차지한다.
간격은 대괄호로 표시하고 패턴 검사할 byte는 간격 뒤에 중괄호를 사용하여 검사할 byte 수를 지정한다.
한글 1글자 검사하기 | 한글 3글자 검사하기 | 한글 3글자~5글자 검사하기 | 한글 3글자 이상 검사하기 |
$ptn = '/^[가-힣]{3}$/'; | $ptn = '/^[가-힣]{9}$/'; | $ptn = '/^[가-힣]{9, 15}$/'; | $ptn = '/^[가-힣]{9,}$/'; |
값이 한글로만 구성되어 있는지 확인하는 예제
<?php
$pattern = '/^[가-힣]{3,}$/';
$str = "홍길동";
if (preg_match($pattern, $str, $macheResult)) {
echo "{$str}은(는) 적합한 이름입니다.";
} else { echo "{$str}은(는) 적합하지 않은 이름입니다."; }
?>
Result
홍길동은(는) 적합한 이름입니다.
단, 띄어쓰기는 허용되지 않는다.
728x90
'Backend > php' 카테고리의 다른 글
[PHP] 정규표현식 preg_match() (3) - 휴대전화, 이메일 유효성 검사 (0) | 2020.03.12 |
---|---|
[PHP] 정규표현식 preg_match() (2) - 영문/숫자 검사 패턴 (0) | 2020.03.12 |
[PHP] 모듈화 함수 - include()와 require() (0) | 2020.03.12 |
[PHP] 파라미터(Parameter)와 아규먼트(Argument) (0) | 2020.03.10 |
[PHP] 함수 만들기, 호출하기, 값 반환하기 (0) | 2020.03.10 |