Article View: pl.comp.lang.perl
Article #39784Re: pierwsze podejscie nietrafione: regex w wielu liniach, mam problem
From: Maciej Misiak
Date: Tue, 19 Oct 2004 11:28
Date: Tue, 19 Oct 2004 11:28
81 lines
3301 bytes
3301 bytes
> A wiec jedyne co jest do zrobienia to w sekcji $smieci zabronic kropce
lykania
> interesujacych nas ciagow jakims, na moje oko, interesujacym assertem.
Jeszcze
> nad tym posiedze.
Albo moze troche inne podejscie:
1. wyciac smieci
2. zastosowac prostego regexpa do wyciagniecia danych
my$cutline='';
my$regexp = '(Job Type\s*:|'.
'Backup mode\s*:|'.
'Job Start Time\s*:|'.
':\s*Media\s*:|'.
'Backup Last Objects\s*:|'.
'Job End Time\s*:|'.
'Completed Size\s*:|'.
'Failed Objects\s*:|'.
'Job Completed Succ?essfully|Job)';
$cutline.="$1$2\n" while $line =~ /^\s*$regexp(.*)$/mg;
$cutline=~s/^$dwukropek//mg;
print"Po wycieciu smieci:\n$cutline\n\n";
$cutline=~/Job\s*(.+)\n
Job\ Type $dwukropek (.+)\n
Backup\ mode $dwukropek (.+)\n
Job\ Start\ Time $dwukropek (.+)\n
((?:Media $dwukropek .+\n)*)
(?:Backup\ Last\ Objects? $dwukropek (.+)\n)?
(?:Job\ End\ Time $dwukropek (.+)\n)?
Completed\ Size $dwukropek (.+)\n
(?:Failed\ Objects $dwukropek (.+)\n)?
(?:(Job\ Completed\ Succ?essfully).*\n)?
(?:Media $dwukropek Home\\.+? - .+? \\ ([^\n\\]+))?
/x;
my @tab=(0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10);
for my $a(1..10) {
$tab[$a]='UNDEF' unless defined $tab[$a];
print "Druga seria: \$$a = $tab[$a]\n";
}
Wynik:
Po wycieciu smieci:
Job Testowe zadanie
Job Type : Backup Job
Backup mode : Full
Job Start Time : 14-Jul-2002 01:00 Pm
Media : TASMA15
Media : TASMA15
Job End Time : 14-Jul-2002 08:08 Pm
Completed Size : 96626454 Kbytes
Failed Objects : 49
Job Completed Sucessfully
Druga seria: $1 = Testowe zadanie
Druga seria: $2 = Backup Job
Druga seria: $3 = Full
Druga seria: $4 = 14-Jul-2002 01:00 Pm
Druga seria: $5 = Media : TASMA15
Media : TASMA15
Druga seria: $6 = UNDEF
Druga seria: $7 = 14-Jul-2002 08:08 Pm
Druga seria: $8 = 96626454 Kbytes
Druga seria: $9 = 49
Druga seria: $10 = Job Completed Sucessfully
Acha, Media sie pojawia dwa razy(!), wiec wrzucilem w calosci do $5
pzdr
Grizzley
--
Wysลano z serwisu OnetNiusy: http://niusy.onet.pl
Technical Details
Message-ID:
<30b7.00000169.4174fa63@newsgate.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.plReferences:
<30b7.00000127.4174ef5d@newsgate.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.pl From: "Maciej Misiak" <grizzleyWYTNIJTO@op.pl> Newsgroups: pl.comp.lang.perl Subject: Re: pierwsze podejscie nietrafione: regex w wielu liniach, mam problem Date: 19 Oct 2004 13:28:35 +0200 Organization: Onet.pl SA Lines: 81 Message-ID: <30b7.00000169.4174fa63@newsgate.onet.pl> References: <30b7.00000127.4174ef5d@newsgate.onet.pl> NNTP-Posting-Host: newsgate.onet.pl Mime-Version: 1.0 X-Trace: newsgate.test.onet.pl 1098185315 11314 213.180.130.18 (19 Oct 2004 11:28:35 GMT) X-Complaints-To: abuse@onet.pl NNTP-Posting-Date: 19 Oct 2004 11:28:35 GMT X-Mailer: http://niusy.onet.pl X-Forwarded-For: 217.153.136.40, 157.25.5.68, 192.168.243.42 X-User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit