preg_replace
POSIX Regex
PCRE
PHP Manual

# preg_split

(PHP 4, PHP 5)

preg_split — Разбивает строку по регулярному выражению

### Описание

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

Возвращает массив, состоящий из подстрок заданной строки `subject` , которая разбита по границам, соответствующим шаблону `pattern` .

В случае, если параметр `limit` указан, функция возвращает не более, чем `limit` подстрок. Специальное значение `limit` , равное -1, подразумевает отсутствие ограничения, это весьма полезно для указания еще одного опционального параметра `flags` .

`flags` может быть произвольной комбинацией следующих флагов (соединение происходит при помощи оператора '|'):

`PREG_SPLIT_NO_EMPTY`
  В случае, если этот флаг указан, функция preg_split() вернет только непустые подстроки.
`PREG_SPLIT_DELIM_CAPTURE`
  В случае, если этот флаг указан, выражение, заключенное в круглые скобки в разделяющем шаблоне, также извлекается из заданной строки и возвращается функцией. Этот флаг был добавлен в PHP 4.0.5.
`PREG_SPLIT_OFFSET_CAPTURE`

  В случае, если этот флаг указан, для каждой найденной подстроки, будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение.

Пример #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 Beta 3.

Смотрите также spliti(), split(), implode(), preg_match(), preg_match_all(), и preg_replace().

preg_replace
POSIX Regex
PCRE
PHP Manual