Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » PHP: помогите с регулярным выражением

Ответить
Настройки темы
PHP: помогите с регулярным выражением
ams ams вне форума

Аватара для ams

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть строки
1)тартатаА 2)трататаБ
3)трататаВ

Нужно получить массив
[0]= тартатаА
[1]= трататаБ
[2]= трататаВ

выражение (?<=\d+\)\s*).* выдает
[0]= тартатаА 2)трататаБ
[1]= трататаВ

Отправлено: 12:00, 01-08-2005

 

Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


И вам здравствуйте.
Может так:
Код: Выделить весь код
(?<=\d+\)\s*)\w+

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 13:06, 01-08-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

ams ams вне форума Автор темы

Аватара для ams

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


$text = "1) один 1 тратата 2) два 2 3) три 3 ";
echo $text . "<br>";
$answ = preg_split("/\d+\)/", $text);
print_r($answ);
--- результат
1) один 1 тратата 2) два 2 3) три 3
Array ( [0] => [1] => один 1 тратата [2] => два 2 [3] => три 3 )
--- вопрос
откуда взялся 0-ой элемент массива?

Отправлено: 13:22, 01-08-2005 | #3


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Сплиту не важно, что ничего не было до первого участка текста соответствующему паттерну. В preg_split PHP-реализации есть флаги, их и возъюзайте:
Цитата:
array preg_split (string pattern, string subject [, int limit [, int flags]])

Примечание: параметр flags был введён в PHP 4 Beta 3.

Возвращает массив, содержащий подстроки из subject, разделённого по границам совпадений с pattern.

Если limit специфицирован, то будет возвращены только подстроки до limit, а если limit равен -1, это означает "нет ограничения", что используется для специфицирования flags.

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

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

PREG_SPLIT_DELIM_CAPTURE
Если это флаг установлен, выражение в скобках в патэрне ограничителя будет захвачено и возвращено. Этот флаг был введён в 4.0.5.

PREG_SPLIT_OFFSET_CAPTURE
Если это флаг установлен, для каждого найденного совпадения будет также возвращено смещение дополнительной строки. Заметьте, что это изменит return-значение в массиве, где каждый элемент является массивом, состоящим из совпавшей строки в смещении 0 и её строкового смещения в subject - в смещении1. Этот флаг доступен, начиная с PHP 4.3.0.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 15:00, 01-08-2005 | #4



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » PHP: помогите с регулярным выражением

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Обсуждение FAQ'а (Ча.Во) по регулярным выражениям Creat0R AutoIt 4 18-09-2009 10:01
Помогите с регулярным выражением в PHP tolbol Вебмастеру 1 30-03-2009 20:02
Вернемся к регулярным выражениям FADE Вебмастеру 2 04-07-2004 19:18
Возвращаясь к регулярным выражениям Cryon Вебмастеру 6 03-07-2004 18:13
Вопрос по регулярным выражениям vadimiron Вебмастеру 5 13-03-2004 20:12




 
Переход