Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Регулярное выражение


Автор: evya 18.5.2010, 16:51
Уважаемые господа!

Помогите с помощью регулярного вырожения извлечь данные из строки

есть 

$str="Gitler Kaput <info@kaput.ru> (NKVD. LTD)"

Необходимо извлечь
$name=Gitler Kaput
$email=info@kaput.ru
$details=NKVD. LTD


За помощь спасибо!

Автор: patap 18.5.2010, 17:22
а ну так попробуй
Код

(.*?)<(.*?)>.*?\((.*?)\)

Автор: evya 18.5.2010, 18:28
непонял как вытащить переменные с помощью
(.*?)<(.*?)>.*?\((.*?)\)

они в $1, $2, $3 ????????

Автор: evya 18.5.2010, 19:26
Ничего не получается
подскажи на примере.


Автор: dva300 18.5.2010, 22:06
Цитата(evya @ 18.5.2010,  19:26)
Ничего не получается
подскажи на примере.

Добрый вечер,

Код

my $str='Gitler Kaput <info@kaput.ru> (NKVD. LTD)';
print " $1 \n $2 \n $3 \n" if ($str =~ /(.*?)<(.*?)>.*?\((.*?)\)/)


вывод :

 Gitler Kaput
 info@kaput.ru
 NKVD. LTD

Автор: shamber 18.5.2010, 22:14
evya, вам показали на вашем примере регулярку, у меня все работает. Ловит именно то о чем вы попросили. а вариантов из-за чего не получается может быть множество.

Добавлено через 31 секунду
dva300, опередил smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)