๐Ÿš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #39784

Re: pierwsze podejscie nietrafione: regex w wielu liniach, mam problem

#39784
From: Maciej Misiak
Date: Tue, 19 Oct 2004 11:28
81 lines
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.pl
References: <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