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


Автор: evya 26.4.2011, 18:06
Имею строку
Date: Tue, 04 Aug 2009 08:43:12 +0400 



Как вытащить в переменную
$a = 04 
$b = Aug
$c = 2009 

Автор: EcSYZ 26.4.2011, 19:37
Код

$str =~ /(\d{2})\s(\w+)\s(\d{4})/;
my $a = $1;
my $b = $2;
my $c = $3;

Автор: ming 28.4.2011, 20:09
evya, не в первый раз замечаю от вас подобные, одинаково простые вопросы. может стоит всё таки немного почитать про регексы по перлу, чем засорять форум?

Автор: evya 2.5.2011, 15:11
посоветуйте что почитать 

Автор: shamber 2.5.2011, 18:23
http://www.google.ru/search?rlz=1C1CHHP_ruRU406RU406&aq=1&oq=%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5&sourceid=chrome&ie=UTF-8&q=%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5+%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F

Автор: SkoobyDoo 2.5.2011, 18:38
evya
http://www.books.ru/shop/books/592346

Автор: evya 2.5.2011, 20:33
Пожалуйста подскажите, стал парсить строку 
Date: Tue, 04 Aug 2009 08:43:12 +0400 


$str =~ /(\d{2})\s(\w+)\s(\d{4})/;
my $a = $1;
my $b = $2;
my $c = $3;


Иногда $а может быть как в один символ (например 2), а иногда в 2 (например 02, как я просил)
если в один то распарсить строку не получается.
подскажите как можно решить проблему


а книгу обязательно прочту

Автор: shamber 2.5.2011, 23:15
(\d{1,2})

Автор: SkoobyDoo 3.5.2011, 05:59
Цитата(evya @ 26.4.2011,  21:06)
Имею строку
Date: Tue, 04 Aug 2009 08:43:12 +0400 



Как вытащить в переменную
$a = 04 
$b = Aug
$c = 2009

use http://search.cpan.org/~gaas/HTTP-Date-6.00/lib/HTTP/Date.pm qw(parse_date time2str);

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