Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярка preg_match_all, находит только первое вхождение 
:(
    Опции темы
alligator
Дата 21.2.2018, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Всем доброго времени суток!
Что-то не получается разобраться с регуляркой....
есть многострочный текст вида:
Код

grey2 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
   Members: 
      Local/627@incoming-ivr/n (ringinuse enabled) (Not in use) has taken no calls yet
      Local/614@incoming-ivr/n (ringinuse enabled) (Not in use) has taken no calls yet
   No Callers

abc has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
   Members: 
      SIP/403 (ringinuse enabled) (Not in use) has taken no calls yet
   No Callers

hotline has 0 calls (max unlimited) in 'ringall' strategy (2s holdtime, 156s talktime), W:0, C:4, A:0, SL:0.0% within 0s
   Members: 
      Local/299@incoming-ivr/n (ringinuse enabled) (Not in use) has taken no calls yet
      Local/599@incoming-ivr/n (ringinuse enabled) (Not in use) has taken no calls yet
      Local/928@incoming-ivr/n (ringinuse enabled) (Not in use) has taken no calls yet
      Local/199@incoming-ivr/n (ringinuse enabled) (Not in use) has taken 4 calls (last was 2631 secs ago)
      Local/925@incoming-ivr/n (ringinuse enabled) (Not in use) has taken no calls yet
      Local/922@incoming-ivr/n (ringinuse enabled) (Not in use) has taken no calls yet
   No Callers



Хочу из текста получить имя очереди и ее членов....
Делаю так:
Код

preg_match_all('/(?<QUEUE>[\w\d_]*)\s?has\s?\d{1,3}\s?calls.*?(?:Members:.*?Local\/((?<MEMBER>\d{1,5})).*?yet.*?Callers)/ims', $queue_data, $matches,PREG_SET_ORDER|PREG_OFFSET_CAPTURE);

В результате получаю имея очереди и только первого ее члена.... как можно поправить чтобы получало всех ?
версия php 5.4

на выходе хотелось бы получить массив вида:
Код

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => grey2 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
   Members: 
      Local/627
                    [1] => 0
                )

            [1] => Array
                (
                    [0] => grey2
                    [1] => 0
                )

            [2] => Array
                (
                    [0] => 627
                    [1] => 142
                )
            [3] => Array
                (
                    [0] => 614
                    [1] => 152
                )
        )



Это сообщение отредактировал(а) alligator - 21.2.2018, 04:24
PM MAIL   Вверх
_zorn_
Дата 23.2.2018, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



У меня есть задача.О, я решу ее с помощью регулярных выражений... Теперь у меня две задачи.
Вычленяй по "Members:" и "No Callers" а потом регулярками проходись.
Регулярки чем и коварны, что ты до последнего будешь пытаться одной все решить....
PM MAIL   Вверх
alligator
Дата 24.2.2018, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Цитата(_zorn_ @ 23.2.2018,  18:55)
У меня есть задача.О, я решу ее с помощью регулярных выражений... Теперь у меня две задачи.
Вычленяй по "Members:" и "No Callers" а потом регулярками проходись.
Регулярки чем и коварны, что ты до последнего будешь пытаться одной все решить....

Сделал двумя:
1. Получаем имя очереди в одну переменную и содержимое между Members и Callers в другую
2. разбираю содержимое  Members и Callers другой регуляркой в цикле....
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.1172 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.