preg_split - Разбивает строку по регулярному выражению
Вернуться к: PCRE
preg_split
(PHP 4, PHP 5)
preg_split — Разбивает строку по регулярному выражению
Описание
Разбивает строку по регулярному выражению.
Список параметров
- 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.
Список изменений
| Версия | Описание |
|---|---|
| 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().
Смотрите также
- "Регулярные выражения PCRE"
- implode() - Объединяет элементы массива в строку
- preg_match() - Выполняет проверку на соответствие регулярному выражению
- preg_match_all() - Выполняет глобальный поиск шаблона в строке
- preg_replace() - Выполняет поиск и замену по регулярному выражению
- preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE
Вернуться к: PCRE