@dronmaxman
VoIP Administrator

Perl, как выделить из строки то что в квадратных скобках []?

День добрый.
Бьюсь над регуляркой уже второй день, есть обходные варианты решения вопроса, но хочется сделать красиво.

Есть строка:
vs-mm-net-ht01[3]: ESTABLISHED 32 minutes ago, 77.164.204.11[vs-mm-vps-ht01]...221.163.147.23[vs-mn-net-kt01]

Необходимо одной строкой определить 3 переменных
Типа так, но не работает: ($num, $tunnel_from, $tunnel_to) = split(/\[(.*?)\]/, $_);

то есть, чтобы переменные получили следующие значения:
num=3
tunnel_from = vs-mm-vps-ht01
tunnel_to = vs-mn-net-kt01
  • Вопрос задан
  • 469 просмотров
Решения вопроса 1
vaut
@vaut
в лоб
# Если в строке бывает ровно три квадратных скобки
/\[(.*)\].*\[(.*)\].*\[(.*)\]/; 
($num, $tunnel_from, $tunnel_to)=($1,$2,$3)

не подходит?
Изящнее:
($num, $tunnel_from, $tunnel_to) = /\[(.+?)\]/g
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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