(PHP 4, PHP 5)
preg_split — Разбивает строку по регулярному выражению
$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_DELIM_CAPTURE
PREG_SPLIT_OFFSET_CAPTURE
Если указан этот флаг, для каждой найденной
подстроки будет указана ее позиция в исходной строке.
Необходимо помнить, что этот флаг меняет формат
возвращаемого массива: каждый элемент будет содержать
массив, содержащий в индексе с номером 0
найденную подстроку, а смещение этой подстроки в параметре
subject
- в индексе 1.
Возвращает массив, состоящий из подстрок заданной строки
subject
, которая разбита по границам,
соответствующим шаблону pattern
.
Версия | Описание |
---|---|
4.3.0 |
Добавлен флаг PREG_SPLIT_OFFSET_CAPTURE
|
4.0.5 |
Добавлен флаг PREG_SPLIT_DELIM_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 ) )
Если вам не нужна мощь регулярных выражений, вы можете выбрать более быстрые (хоть и простые) альтернативы наподобие explode() или str_split().