Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re: regex optional word match

by moritz (Cardinal)
on Jul 26, 2012 at 09:43 UTC ( #983811=note: print w/replies, xml ) Need Help??

in reply to Parsind data in xlsx

What data do you need to extract? And what have you tried, what problems did you have?

Replies are listed 'Best First'.
Re^2: regex optional word match
by Rahul Gupta (Sexton) on Jul 26, 2012 at 10:03 UTC
    I have tried this regular expression $_ =~ m/^REMOTE\s+\[(.*?)\]\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+\[(.*?)\]\s+(.*?)sec\s+(.*)MBytes\s+(.*)Mbits\/sec
    . it gives data from both strings.But <cd> String1:"REMOTE Mon Jul 16 21:49:33 2012 @@ ueh1 TNT 20490 1916 0.0- 1.0 sec 0.33 MBytes 2.74 Mbits/sec 6.056 ms 0/ 233 (0%)"; </c>having two values in last 6.056 ms and 0/ 233(0%) i have to make them optional. Please help me in this problem Thanx
        I have one array with 2 Strings:
        String1: "REMOTE [Mon Jul 16 21:49:33 2012] @@ [ueh1] [TNT] [2049 +0] [1916] 0.0- 1.0 sec 0.33 MBytes 2.74 Mbits/sec 6.056 ms 0/ + 233 (0%)". String2: "REMOTE [Mon Jul 16 21:49:34 2012] @@ [pdn1] [SSH] [2049 +9] [3] 1.0- 2.0 sec 0.34 MBytes 2.86 Mbits/sec".
        In "String1" I have two extra values that is "6.056 ms" and "0/ 233 (0%)" rest are same in both string; I tried this regex: m/^REMOTE\s+\[(.*?)\]\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+\[(.*?)\]\s+(.*?)sec\s+(.*)MBytes\s+(.*)Mbits\/sec
        but need to add the above mentioned two values of String1 in regex and make them optional so that both condition gets passed and last values stored in $10, $11.
        Can anyone help me?
        Thanks in advance

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://983811]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (7)
As of 2017-08-17 11:03 GMT
Find Nodes?
    Voting Booth?
    Who is your favorite scientist and why?

    Results (286 votes). Check out past polls.