(PHP 4, PHP 5, PHP 7)
preg_split — 정규 표현식에 따라 문자열을 나눔
$pattern
, string $subject
[, int $limit
[, int $flags
]] )정규 표현식에 따라서 주어진 문자열을 나눕니다.
pattern검색할 패턴 문자열.
subject입력 문자열.
limit
지정하면, limit 회까지 나눠진 문자열을 반환하며,
limit가 -1이면 "무제한"을 의미합니다. 이 값은
flags를 지정할 때 유용합니다.
flags
flags는 다음 플래그들을 조합할 수 있습니다
(bitwise | 연산자로 조합합니다) :
PREG_SPLIT_NO_EMPTYPREG_SPLIT_DELIM_CAPTUREPREG_SPLIT_OFFSET_CAPTURE이 플래그를 설정하면, 문자열의 시작 위치도 반환합니다. 반환값이 매치된 문자열을 오프셋 0으로, 문자열 시작 위치를 오프셋 1로 가지는 배열을 원소로 갖는 배열로 변하는 점에 주의하십시오.
pattern에 매치한 경계로 나눠진
subject의 부분을 가진 배열을 반환합니다.
| 버전 | 설명 |
|---|---|
| 4.3.0 |
PREG_SPLIT_OFFSET_CAPTURE 추가
|
| 4.0.5 |
PREG_SPLIT_DELIM_CAPTURE 추가
|
| 4.0.0 |
flags 인수 추가
|
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, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>
Example #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()로 대체할 수 있습니다.