| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Тексты > Разбиение строки с несколькими разделителями |
| Автор: TNT86 8.10.2007, 16:29 |
| Есть строка и несколько типов разделителей пробел, запятая и так далее... При использовании split и explode выходит какая-то лажа, то есть мягко говоря строка не разбивается. Делаю что-то типа $array=split(" !,",$string); Есть какое решение этой проблемы? |
| Автор: webevt 8.10.2007, 16:50 | ||
$str - массив |
| Автор: TNT86 8.10.2007, 16:54 |
| /s подразумевает пробел? Добавлено через 5 минут и 44 секунды Что-то все-равно так как нужно не работает :( <?php $string="hi mr agent!smith"; $result=preg_split("/(!|,)/s",$string); foreach($result as $value) { echo $value,'<BR><BR>'; }; ?> выдает hi mr agent smith а хотелось бы hi mr ну и так далее, чтобы пробелы были тоже разделителями |
| Автор: chin 8.10.2007, 17:06 | ||
|
| Автор: sTa1kEr 8.10.2007, 17:07 | ||
Нет. Это модификатор, означающий, что под набор символов "." будут так же попадать и переносы строк.
|
| Автор: TNT86 8.10.2007, 17:27 |
| Спасибо Всем, особенно to Chin - его код работает! Только можешь объяснить почему он переносит пробелы? |
| Автор: sTa1kEr 8.10.2007, 17:55 | ||
http://us2.php.net/manual/ru/reference.pcre.pattern.syntax.php
|
| Автор: chin 8.10.2007, 20:58 |
| TNT86, Возьмите код sTa1kEr, у него правильнее. |
| Автор: CyClon 9.10.2007, 07:06 | ||||||||
"|", "!", ",", "\s" - разделители. Можно убирать добавлять. "+" - значит, что разделители могут идти друг за другом (например запятая, а за ним пробел). \s - любой пробельный символ (пробел, табуляция, перенос строки и т.д.) Добавлено через 5 минут и 10 секунд Можно еще так (Все зависит от задачи © MalHack):
Разделителем будет считаться любой символ, кроме букв русского и английского алфавитов (верхний и нижний регистр), а так же цифр. То есть, имхо, самый оптимальный вариант разбить нужный текст на слова. В маске просто описываем символы, из которых может состоять слово (В данном случае а-я А-Я a-z A-Z 0-9). |
| Автор: TNT86 9.10.2007, 20:07 |
| Спасибо Всем! Вопрос исчерпан! |
| Автор: 119040 10.10.2007, 21:50 | ||
| CyClon, спасибо, мне тоже пригодилось! Но как в списко исключений добавить пробел? Пробел в моем случае - не символ разделения! Добавлено через 4 минуты и 39 секунд Сорри, поспешил
Вопрос решен! |