Forum und email

정규표현식 함수 (펄-호환)

소개

이 함수들에서 사용되는 패턴 문법은 펄에 가깝습니다. 표현식은 구분자로 감싸주어야 합니다. 예를 들면, 슬래쉬(/)로 감싸줍니다. 영문자와 숫자, 백슬래쉬(\)를 제외한 어떠한 문자라도 구분자로 사용할 수 있습니다. 구분자가 표현식 안에서 사용될 경우, 백슬래쉬로 이스케이프해야합니다. PHP 4.0.4부터, 펄 형식의 (), {}, [], <> 매칭 구분자를 사용할 수 있습니다. 자세한 설명은 패턴 문법을 참고하십시오.

종료 구분자 뒤에는 매칭에 영향을 주는 여러가지 변경자(midifier)를 쓸 수 있습니다. 패턴 변경자를 참고하십시오.

PHP는 POSIX 확장 정규표현식 함수로 POSIX 확장 문법을 사용하는 정규표현식을 지원합니다.

Warning

PCRE의 몇몇 제한에 주의를 해야합니다. 자세한 정보는 » https://www.pcre.org/pcre.txt을 참고하십시오.

요구 조건

정규표현식 지원은 Philip Hazel이 작성한 PCRE 라이브러리 패키지에 의해 제공됩니다. 저작권은 University of Cambridge, England에 있습니다. » ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/에 존재합니다.

설치

PHP 4.2.0부터 이 함수들은 기본값으로 사용 가능합니다. --without-pcre-regex로 PCRE 함수를 사용하지 않을 수 있습니다. 번들된 라이브러리를 사용하지 않는다면, --with-pcre-regex=DIR을 이용하여 PCRE의 인크루드와 라이브러리 파일이 있는 특정한 디렉토리를 지정하십시오. 이전 버전에서는 이 함수들을 사용하기 위해서는 PHP를 --with-pcre-regex[=DIR]를 주어서 설정하고 컴파일해야합니다.

PHP 윈도우 버전에서는 이 확장에 대한 지원이 포함되어 있습니다. 이 함수들을 이용하기 위해서 추가로 확장을 읽어들일 필요가 없습니다.

실행시 설정

이 확장은 php.ini 설정이 존재하지 않습니다.

자원형

이 확장은 리소스형을 정의하지 않습니다.

예약 상수

이 확장은 다음의 상수들을 정의합니다. 이 확장을 PHP에 내장했거나, 실행시에 동적으로 읽어들일 경우에만 사용할 수 있습니다.

PREG 상수
상수 설명
PREG_PATTERN_ORDER $matches[0] 배열은 패턴 전체를 가지고, $matches[1] 배열이 처음 괄호에 들은 서브패턴의 문자열을 가지도록 결과를 지정합니다. 이 플래그는 preg_match_all()에서만 사용합니다.
PREG_SET_ORDER $matches[0] 배열은 매치된 첫번째 집합을 가지고, $matches[1]는 두번째 집합을 가지도록 결과를 지정합니다. 이 플래그는 preg_match_all()에서만 사용합니다.
PREG_OFFSET_CAPTURE PREG_SPLIT_OFFSET_CAPTURE의 설명을 보십시오. 이 플래그는 PHP 4.3.0부터 사용할 수 있습니다.
PREG_SPLIT_NO_EMPTY 이 플래그는 preg_split()가 비어있지 않은 조각만을 반환하게 합니다.
PREG_SPLIT_DELIM_CAPTURE 이 플래그는 preg_split()가 구분자 안의 괄호로 둘러싸인 표현식도 잡아내게 합니다. PHP 4.0.5부터 사용할 수 있습니다.
PREG_SPLIT_OFFSET_CAPTURE 이 플래그를 설정하면, 매치하는 모든 문자열 요소의 시작 위치를 함께 반환합니다. 매치된 문자열을 0으로, 문자열 시작 위치를 1로 가지는 배열을 원소로 가지는 배열을 반환합니다. 이 플래그는 PHP 4.3.0부터 사용할 수 있고, preg_split()에서만 사용합니다.

예제

Example#1 유효한 패턴 예제

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

Example#2 유효하지 않은 패턴 예제

  • /href='(.*)' - 종료 구분자가 없습니다
  • /\w+\s*\w+/J - 알 수 없는 변경자 'J'
  • 1-\d3-\d3-\d4| - 시작 구분자가 없습니다

Table of Contents

  • 패턴 변경자 — 정규표현식 패턴에 존재하는 변경자의 설명
  • 패턴 문법 — PCRE 정규표현식 문법 설명
  • preg_grep — 패턴 매치의 배열을 반환합니다.
  • preg_last_error — Returns the error code of the last PCRE regex execution
  • preg_match_all — 전역 정규 표현식 매치를 수행합니다.
  • preg_match — 정규표현식 매치를 수행합니다.
  • preg_quote — 정규 표현식 문자를 인용합니다.
  • preg_replace_callback — 콜백을 이용한 정규 표현식 검색과 치환을 수행합니다.
  • preg_replace — 정규 표현식 검색과 치환을 수행합니다.
  • preg_split — 정규 표션식에 따라 문자열을 나눕니다.