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().