정규식(PCRE) preg_split
(PHP 4, PHP 5, PHP 7, PHP 8)
preg_split — 정규 표현식으로 문자열 분할
설명
preg_split( string $pattern, string $subject, int $limit = -1, int $flags = 0 ): array|false
주어진 문자열을 정규식으로 나눕니다.
매개변수
pattern
- 문자열로 검색할 패턴입니다.
subject
- 입력 문자열입니다.
limit
- 지정된 경우
limit
까지의 하위 문자열만 반환되고 나머지 문자열은 마지막 하위 문자열에 배치됩니다. -1 또는 0의limit
은 "제한 없음"을 의미합니다. flags
flags
는 다음 플래그의 조합일 수 있습니다(|
비트 연산자와 결합).PREG_SPLIT_NO_EMPTY
- 이 플래그가 설정되면 preg_split()에 의해 비어 있지 않은 조각만 반환됩니다.
PREG_SPLIT_DELIM_CAPTURE
- 이 플래그가 설정되면 구분자 패턴에서 괄호로 묶인 표현식도 캡처되어 반환됩니다.
PREG_SPLIT_OFFSET_CAPTURE
- 이 플래그가 설정되면 모든 일치 항목에 대해 추가 문자열 오프셋도 반환됩니다. 이것은 모든 요소가 오프셋
0
에서 일치하는 문자열과 오프셋1
에서subject
로의 문자열 오프셋으로 구성된 배열인 배열의 반환 값을 변경합니다.
반환 값
pattern
과 일치하는 경계를 따라 분할된 subject
의 하위 문자열을 포함하는 배열을 반환하거나 실패 시 false
를 반환합니다.
오류/예외
전달된 정규식 패턴이 유효한 정규식으로 컴파일되지 않으면 E_WARNING
이 발생합니다.
Examples
예제 #1 preg_split() 예 : 검색 문자열의 일부 가져오기
<?php
// split the phrase by any number of commas or space characters,
// which include " ", \r, \t, \n and \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
?>
위의 예는 다음을 출력합니다.
Array ( [0] => hypertext [1] => language [2] => programming )
예제 #2 문자열을 구성 요소 문자로 분할
<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>
위의 예는 다음을 출력합니다.
Array ( [0] => s [1] => t [2] => r [3] => i [4] => n [5] => g )
예제 #3 문자열을 일치 항목과 오프셋으로 분할
<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>
위의 예는 다음을 출력합니다.
Array ( [0] => Array ( [0] => hypertext [1] => 0 ) [1] => Array ( [0] => language [1] => 10 ) [2] => Array ( [0] => programming [1] => 19 ) )
메모
팁 정규식의 힘이 필요하지 않은 경우, explode() 또는 str_split()과 같은 더 빠른(간단하지만) 대안을 선택할 수 있습니다.
팁 일치에 실패하면 입력 문자열을 포함하는 단일 요소가 있는 배열이 반환됩니다.
기타
- PCRE Patterns
- preg_quote() - 정규 표현식 문자 인용
- implode() - 배열 요소를 문자열로 결합
- preg_match() - 정규식 일치 수행
- preg_match_all() - 전역 정규식 일치 수행
- preg_replace() - 정규식 검색 및 바꾸기 수행
- preg_last_error() - 마지막 PCRE 정규식 실행의 오류 코드를 반환합니다.