PCRE
PHP Manual

preg_split

(PHP 4, PHP 5, PHP 7)

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

Описание

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

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

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

pattern

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

subject

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

limit

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

flags

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

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

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

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

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

Примеры

Пример #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, -1PREG_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, -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
        )

)

Примечания

Подсказка

Если вам не нужна мощь регулярных выражений, вы можете выбрать более быстрые (хоть и простые) альтернативы наподобие explode() или str_split().

Подсказка

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

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


PCRE
PHP Manual