update : 2015.11.03
php.shukuma.com

검색:
 
 
정규 표현식에 따라 문자열을 나눔

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

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

PREG_SPLIT_NO_EMPTY
이 플래그를 설정하면, preg_split()에 의해 나눈 후 비어있지 않은 조각만을 반환합니다.
PREG_SPLIT_DELIM_CAPTURE
이 플래그를 설정하면, 구분자 패턴 안의 서브패턴도 검출하여 반환합니다.
PREG_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, -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
        )

)

주의

Tip

정규 표현식의 힘이 필요하지 않으면, 더 빠른(그리고 간단한) explode()str_split()로 대체할 수 있습니다.

참고

  • spliti() - Split string into array by regular expression case insensitive
  • split() - Split string into array by regular expression
  • implode() - 문자열로 배열 원소를 결합
  • preg_match() - 정규표현식 매치를 수행
  • preg_match_all() - 전역 정규 표현식 매치를 수행합니다
  • preg_replace() - 정규 표현식 검색과 치환을 수행