preg_split

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_split -- 정규 표션식에 따라 문자열을 나눕니다.

설명

array preg_split ( string pattern, string subject [, int limit [, int flags]])

pattern에 매치된 경계에 따라서 나눠진 subject의 문자열을 포함하는 배열을 반환합니다.

limit를 지정하면, limit 횟수까지의 나눠진 문자열을 반환하며, limit가 -1이면 "무제한"을 의미합니다. 이 값은 flags를 지정할 때 유용합니다.

flags는 다음 플래그들의 조합을 사용할 수 있습니다 (bitwise | 연산자로 결합합니다) :

PREG_SPLIT_NO_EMPTY

이 플래그를 설정하면, preg_split()에 의해 비어있지 않은 (non-empty) 조각만을 반환합니다.

PREG_SPLIT_DELIM_CAPTURE

이 플래그를 설정하면, delimiter 패턴 안의 서브패턴도 검출하고 반환합니다. 이 플래그는 4.0.5에서 추가되었습니다.

PREG_SPLIT_OFFSET_CAPTURE

이 플래그를 설정하면, 문자열의 시작 위치도 반환합니다. 반환값이 매치된 문자열을 오프셋 0으로, 문자열 시작 위치를 오프셋 1로 가지는 배열을 원소로 갖는 배열로 변하는 점에 주의하십시오. 이 플래그는 PHP 4.3.0부터 사용할 수 있습니다.

예 1. preg_split() 예제 : 검색 문자열의 일부만을 얻기

<?php
// " ", \r, \t, \n, \f를 포함하여
// 임의 갯수의 콤마와 스페이스로 구문을 나눕니다.
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
?>

예 2. 문자열을 구성 문자로 나누기.

<?php
$str
= 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

예 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
        )

)

참고: flags인자는 PHP 4 베타 3에서 추가되었습니다.

참고: spliti(), split(), implode(), preg_match(), preg_match_all(), preg_replace().