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

# preg_split

(PHP 4, PHP 5, PHP 7, PHP 8)

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

### Описание

function preg_split(
string `$pattern`,
string `$subject`,
int `$limit` = -1,
int `$flags` = 0
): array|false

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

### Список параметров

`pattern`

  Строка, содержащая искомый шаблон.

`subject`

  Входная строка.

`limit`

  Если указан, функция возвращает не более, чем `limit` подстрок. Оставшаяся часть строки будет возвращена в последней подстроке. Специальное значение `limit`, равное -1 или 0, подразумевает отсутствие ограничения.

`flags`

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

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

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

### Возвращаемые значения

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

### Ошибки

Если передали шаблон регулярного выражения, который не компилируется в допустимое регулярное выражение, выдаётся ошибка уровня `E_WARNING`.

### Примеры

Пример #1 preg_split() пример: Получение подстрок из заданного текста

    <?php
    // разбиваем строку по произвольному числу запятых и пробельных символов,
    // которые включают в себя  " ", \r, \t, \n и \f
    $keywords = preg_split("/[\s,]+/", "hypertext language, programming");
    print_r($keywords);
    ?>

Результат выполнения приведённого примера:

    Array
    (
        [0] => hypertext
        [1] => language
        [2] => programming
    )

Пример #2 Разбиваем строку на составляющие символы

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

Результат выполнения приведённого примера:

    Array
    (
        [0] => s
        [1] => t
        [2] => r
        [3] => i
        [4] => n
        [5] => g
    )

Пример #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().

Подсказка

Если соответствий не нашлось, то возвращается массив с единственным элементом равным всей строке.

### Смотрите также

- "Регулярные выражения PCRE"
- preg_quote() - Экранирует символы в регулярных выражениях
- explode() - Разбивает строку разделителем
- preg_match() - Выполняет проверку на соответствие регулярному выражению
- preg_match_all() - Выполняет глобальный поиск шаблона в строке
- preg_replace() - Выполняет поиск и замену по регулярному выражению
- preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open