@SteepNET

Как составить регулярное выражение?

Никак не получается побороть регулярные выражения
703@ext-local : PJSIP/703&SIP/99703& State:Idle Presence:available Watchers 16 1 hint matching extension 703

Нужно оставлять только State:Idle, все что после State:
Там могут быть Unavailable, Ringing, InUse или Idle

Пробовал через CUT
$num=703;
$a="asterisk -x 'core show hint " . $num . "' | grep State | cut -f4 -d':' | cut -f1 -d' '";
echo exec($a);

Но бывает что знак : встречается чаще чем 3 или 4 раза ,поэтому вывод не совсем правильный, как применить тут именно State: не смог понять.
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
VicTHOR
@VicTHOR
(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻
1 строка на входе? Это все условия? State всегда с большой буквы? всегда двоеточие после идет без пробелов? всегда после двоеточия тоже нет пробела?
$str= '703@ext-local : PJSIP/703&SIP/99703& State:Idle Presence:available Watchers 16 1 hint matching extension 703';
preg_match('#(?<=State:)\S+#', $str, $state);
echo $state[0];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы