PHP 정규표현식

(2019-12-26)

preg_match, preg_replace


1. PHP 정규표현식정규표현식 참조

  ㅇ 지원 종류
     -  Perl 호환의 정규표현식 지원 (PCRE)  : `preg`
     -  멀티바이트 mbstring 정규표현식 지원 : `mb_ereg`
     -  POSIX 확장 형식 지원 (쓰기 쉬우나, 기능 빈약,취약성 때문에 5.3 버전 이후 지원 중단)

  ㅇ 정규 표현식 구분자 : 정규 표현식은 반드시 슬래시(/)로 감싸짐
     - 대부분 다른 언어에서도, 2개의 슬래시(/) 사이에 `문자열 패턴 식(정규표현식)`을 줌


2. 패턴 기호                                                     ☞ 정규표현 메타 문자 참조

  ㅇ 단일 문자 
     -  . : 임의 한 문자 (줄바꿈 문자를 제외한 모든 단일 문자)

  ㅇ 반복성
     -  ?     : 0 또는 1회 만 매치 (아예 없거나 1회 만 나타남, 최대 1회)
     -  *     : 최소 0회 이상 반복 매치
     -  +     : 최소 1회 이상 반복 매치
     -  {n}   : n회 반복 매치
     -  {n,m} : n회 이상 m회 이하 반복 매치
     -  {n,}  : 적어도 n회 이상 반복 매치

  ㅇ 위치 지정
     -  ^   : 문자열의 시작
     -  $   : 문자열의 끝

  ㅇ 문자 클래스
     -  [0-9] 또는 d  : 모든 숫자
     -  [^0-9] 또는 D : 숫자가 아닌 모든 문자

  ㅇ 선택(or)
     -  |


3. 패턴 수식자패턴 구분 문자인 슬래시(/) 뒤에서 지정
     -  i : 대소문자 구분 안함
     -  m : 줄 단위 매칭
     -  s : `.`을 줄바꿈 문자에도 매칭
     -  u : 정규표현식(패턴 문자열)을 UTF-8 인코딩으로 취급
     -  x : 이스케이프 또는 문자 클래스 내부를 제외하고, 패턴공백문자를 무시


4. 정규표현식 내 특수문자 이스케이프

  ㅇ  특수문자 : `.`, `,`, `?`, `*`, `+`, `^`, `$`, `[`, `]`, `(`, `)`
  ㅇ  이스케이프 처리 : 특수문자 앞에 역슬래시 `\`를 붙임
  ㅇ  만일, 단일 역슬래시와의 매치하려면, 역슬래시를 4번 씀(`\\\\`)
  ㅇ  특수 문자 이스케이프 전용 함수 : preg_quote()


5. 정규표현식 관련 PHP 함수

  ㅇ  preg_match(pattern, subject)     : 최초 매치에서 멈춤
     - 패턴에 맞는 문자가 있으면 true 반환
  ㅇ  preg_match_all(pattern, subject) : 모든 매치를 찾음
  ㅇ  preg_replace(pattern, replacement, subject) : 매치 교체
     - 例) preg_replace("/[^a-zA-Z0-9_\.]/","",string); // 영문자,_,숫자 이외 모든 문자 제거


6. [참고웹사이트]이 세상에 하나는 남기고 가자 (PHP 정규식 PCRE의 모든 것)
  ㅇ (...)

PHP
   1. PHP   2. PHP 기초 문법   3. PHP 및 HTTP   4. PHP 정규표현식   5. PHP 쿠키/세션   6. PHP 내장 웹서버   7. PHP 환경 설정   8. PHP 객체지향   9. PHP DB 접속  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"