Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: regex pattern match

by ack (Deacon)
on Jun 24, 2011 at 16:12 UTC ( [id://911268]=note: print w/replies, xml ) Need Help??


in reply to regex pattern match

Here's one way. It's not very elegant but I, too, have trouble with RegEx's. I think this does what you want; but I'm sure there's a shorter or more compact way. But hopefully it's a start. Note that I put sigle quotes around the output of $value to show that white space has, indeed, been trimmed off.

#!/usr/bin/perl use strict; use warnings; my @out = ( 'HostName: LAP3220889 TaskName: infiniteloop Next Run Time: Never Status: Last Run Time: 21:45:18, 22/06/2011 Last Result: 0 ' , 'HostName: LAP3220889 TaskName: infiniteloop Next Run Time: 11:06:00, 23/06/2011 Status: Running Last Run Time: 10:10:04, 23/06/2011 Last Result: 0 ' ,); my($key,$value)=('',0); foreach my $recNo(0..(scalar(@out)-1)){ print "\nRecord No. $recNo\n"; my @lines = split("\n",$out[$recNo]); foreach my $line (@lines){ next unless(($key) = ($line =~ /^(HostName|Status|Last\sResult)/) +); $value = ''; ($value) = ($line =~ /:(.*)$/); $value =~ s/^\s*(\S*)\s*$/$1/; #strip off leading and trailing w +hite space print " $key = '$value'\n"; } } exit(0);

The output from this code is:

Record No. 0 HostName = 'LAP3220889' Status = '' Last Result = '0' Record No. 1 HostName = 'LAP3220889' Status = 'Running' Last Result = '0'
ack Albuquerque, NM

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://911268]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (6)
As of 2024-03-19 11:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found