Forum und email

preg_split

(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부터 사용할 수 있습니다.

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

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

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

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

Example#3 매치와 시작위치로 문자열을 나누기.

<?php
$str 
'hypertext language programming';
$chars preg_split('/ /'$str, -1PREG_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
        )

)

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

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