정규식(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()과 같은 더 빠른(간단하지만) 대안을 선택할 수 있습니다.

일치에 실패하면 입력 문자열을 포함하는 단일 요소가 있는 배열이 반환됩니다.


기타