Article View: pl.comp.lang.perl
Article #39781Re: regex w wielu liniach, mam problem
From: Grzegorz Szyszlo
Date: Tue, 19 Oct 2004 08:51
Date: Tue, 19 Oct 2004 08:51
128 lines
6922 bytes
6922 bytes
Maciej Misiak wrote:
skomentuje istnienie linii
>>$line=~/ ^Job \s ([^\n]+) #zawsze jest
>> .*? ^\s\s Job\ Type \s+ : \s ([^\n]+) #zawsze jest
>> .*? ^\s\s Backup\ mode \s+ : \s ([^\n]+) #zawsze jest
>> .*? ^\s\s Job\ Start\ Time \s+ : \s ([^\n]+) #zawsze jest
>> .*? ^\s+ : \s+ Media \s+ : \s ([^\n]+) #moze nie byc
>> .*? ^\s+ Backup\ Last\ Objects? \s+ : \s+ End \s+ ([^\n]+) #moze nie byc
>> .*? ^\s+ Job\ End\ Time \s+ : \s ([^\n]+) #moze nie byc
>> .*? ^\s\s Completed\ Size \s+ : \s ([\d]+) [^\n]* #zawsze jest
>> .*? ^\s\s Failed\ Objects \s+ : \s ([^\n]+) #moze nie byc
>> .*? ^\s\s (Job\ Completed\ Succ?essfully) [^\n]* #moze nie byc
>> /xsm;
i tak sie zastanawiam jak zrobic regexpa ktory by mi to pominal.
> Aj, errata:
> Poza tym ja bym przemyslal czy na poczatku kazdej linii oraz miedzy dwukropkiem
> a innymi napisami nie wstawic \s* Zaoszczedzi to bolu glowy, bo NIE trzeba
> bedzie sie zastanawiac czy np. po Media sa trzy spacje, a przed Backup moZe
> dwie czy na odwrot.
jak juz to \s+ , bo wystepuje conajmniej jedna.
> A poza tym wrzuc przykladowego loga na newsy, bo chce sobie wyprobowac takie
> cos:
>
> $smieci='(?:.*\n)*?\s*?';
> $dwukropek='\s*?:\s*?';
> $line=~/Job\s*(.+)\n
> $smieci
> (?:Job\ Type $dwukropek (.+)\n)?
> $smieci
> (?:Backup\ mode $dwukropek (.+)\n)?
> $smieci
> (?:Job Start\ Time $dwukropek (.+)\n)?
> $smieci
> (?:$dwukropek Media $dwukropek (.+)\n)?
> $smieci
> (?:Backup\ Last\ Objects $dwukropek (.+)\n)?
> $smieci
> (?:Job\ End\ Time $dwukropek (.+)\n)?
> $smieci
> (?:Completed\ Size $dwukropek (.+)\n)?
> $smieci
> (?:Failed\ Objects $dwukropek (.+)\n)?
> $smieci
> (?:(Job\ Completed\ Succ?essfully).*\n)?
> $smieci
> (?:Media $dwukropek Home\\.+? - .+? \\ ([^\n\\]+))?
> /x;
a testuj :) chociaz watpie by ci to zrealizowal bez /m .
zreszta sam chetnie sprawdze :)
Btw. zastanawiajace moze byc wyrazonko Succ?essfully . po prostu
we wczesniejszych wersjach a nawet fixach programu, widnial
napis Sucessfully. literowka. to samo (w twoim wyrazeniu jest zle)
Backup\ Last\ Objects? (zapomniales pytajnika), tez byla pominieta
literka 's' na koncu.
------------przykladowy LOG z tapeware--------------
===============================================================================
Job Testowe zadanie
===============================================================================
Summary
-------------------------------------------------------------------------------
Job Type : Backup Job
Number of Passes : 5
Logging Mode : Failed Objects Only
Backup mode : Full
Change mode : Force to append
Write Mode : Overwrite all Media
Auto Format Mode : Do Not Auto Format Media
Verify Mode : Quick Read Verification
Job Start Time : 14-Jul-2002 01:00 Pm
Selecting Objects : Start 14-Jul-2002 01:00:21 Pm
Selecting Objects : End 14-Jul-2002 01:01:00 Pm
Backup 1st Objects : Start 14-Jul-2002 01:01:00 Pm
:
: Disaster Recovery information has been saved for
: Host : SERWERTEST
: Device : Dev-1.0.5.0: Benchmark DLT1
: Media : TASMA15
:
Backup 1st Objects : End 14-Jul-2002 01:02:14 Pm
Backup Pass 1 : Start 14-Jul-2002 01:02:14 Pm
Backup Pass 1 : End 14-Jul-2002 04:35:53 Pm
Backup Pass 2 : Start 14-Jul-2002 04:36:09 Pm
Backup Pass 2 : End 14-Jul-2002 04:36:30 Pm
Backup Pass 3 : Start 14-Jul-2002 04:36:46 Pm
Backup Pass 3 : End 14-Jul-2002 04:37:06 Pm
Backup Pass 4 : Start 14-Jul-2002 04:37:23 Pm
Backup Pass 4 : End 14-Jul-2002 04:37:42 Pm
Backup Pass 5 : Start 14-Jul-2002 04:37:58 Pm
Backup Pass 5 : End 14-Jul-2002 04:38:18 Pm
Backup Last Object : Start 14-Jul-2002 04:38:18 Pm
:
: The object MojSerwer Storage Server Database has been backed up
: Device : Dev-1.0.5.0: Benchmark DLT1
: Media : TASMA15
:
Backup Last Object : End 14-Jul-2002 04:38:42 Pm
Build Object List : Start 14-Jul-2002 04:39:18 Pm
Build Object List : End 14-Jul-2002 04:39:19 Pm
AutoVer Pass 1 : Start 14-Jul-2002 04:39:19 Pm
AutoVer Pass 1 : End 14-Jul-2002 08:07:10 Pm
Job End Time : 14-Jul-2002 08:08 Pm
Effective Throughput : 3765 Kbytes/Second
: 220 Mbytes/Minute
Selected Objects : 150339
Selected Size : 96626588 Kbytes
Completed Objects : 150290
Completed Size : 96626454 Kbytes
Failed Objects : 49
Failed Size : 133 Kbytes
Job Completed Sucessfully
Check Log for any Failed Objects
Details
-------------------------------------------------------------------------------
I dalej nic nie znaczace rzeczy.
Technical Details
Message-ID:
<cl2kjm$4b6$1@news.lublin.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!lublin.pl!news.lublin.pl!not-for-mailReferences:
<1d72.00000a9b.4173d684@newsgate.onet.pl> <1d72.00000ac9.4173e369@newsgate.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!lublin.pl!news.lublin.pl!not-for-mail From: Grzegorz Szyszlo <znik@wbc.lublin.pl> Newsgroups: pl.comp.lang.perl Subject: Re: regex w wielu liniach, mam problem Date: Tue, 19 Oct 2004 10:51:19 +0200 Organization: lubman Lines: 129 Message-ID: <cl2kjm$4b6$1@news.lublin.pl> References: <1d72.00000a9b.4173d684@newsgate.onet.pl> <1d72.00000ac9.4173e369@newsgate.onet.pl> NNTP-Posting-Host: user.wbc.lublin.pl Mime-Version: 1.0 X-Trace: news.lublin.pl 1098175926 4454 212.182.104.10 (19 Oct 2004 08:52:06 GMT) X-Complaints-To: abuse@news.lublin.pl NNTP-Posting-Date: Tue, 19 Oct 2004 08:52:06 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030721 Debian/1.4-1.nobse.2 X-Accept-Language: pl, en-us In-Reply-To: <1d72.00000ac9.4173e369@newsgate.onet.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit