Back-end/php, Laravel

(PHP) 정규식 정리

개발자 케빈 2021. 8. 5. 17:16

* 정규식을 사용하면 단순 패턴을 캐치 해, 해당 패턴을 만족하는 식에 대해 원하는 조건을 줄 수 있다.

ex) 마스킹 처리, 휴대폰 번호 형식 통일, (전화번호, 이메일)유효성 검사 등등..

 

 

.   임의의 한 문자 (줄 바꿈 제외 \n)

?  해당 문자 패턴이 0번 또는 1번 반복

*  해당 문자 패턴이 0번 이상 반복

+  해당 문자 패턴이 1번 이상 반복

{...} 반복되는 횟수를 지정

^  문자열의 처음을 의미

$  문자열의 을 의미 

\  특수문자를 무시

 선택을 의미 (or)

(...)  그룹화의 시작과 끝을 의미

 

 

이러한 정규식을 통해 해당 패턴을 만족하는 값들을

검색 ; preg_match_all('<정규식>', '<탐색 값>', '<담을 배열 변수>')

대체 ; preg_replace('<정규식>', '<대체할 문자 열>', '<탐색 값>')

 

$example = 'example'

 

ex) preg_replace('/^.{3}', '***', $example) 

; $example의 값에서 임의의 문자열 앞 3자리를 ***로 대체

-> 결과 값 ; ***mple 

 

 

 

문자 클래스 ; 정규 표현식에 명시된 문자의 범위를 지정해준다.

 

/[0-5]/  ; 0부터 5까지의 숫자에 해당하는 한 문자

/[a-z]/   ; 소문자에 해당하는 한 문자

/[0-9a-zA-Z]/  ; 숫자, 소문자, 대문자에 해당하는 한 문자

 

 

추가)

\d : 숫자, [0-9] 와 같음

\D : 숫자가 아닌 것 [^0-9] 와 같다.

 

참고) 

이메일 정규식

; /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z{2,3}$/i