Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: regex remove blank/whitespace until first occurrence of specific character "["

by kroach (Pilgrim)
on Mar 02, 2015 at 22:47 UTC ( #1118502=note: print w/replies, xml ) Need Help??


in reply to regex remove blank/whitespace until first occurrence of specific character "["

The following modification to the regular expression gives your desired output (I took no assumptions about the format of the text following a timestamp):

#!/usr/bin/env perl use strict; use warnings; use Data::Dumper; my $initialStr = "[20150302 22:01:05] [1, 2, 3, 4] String0\n [20150302 + 22:01:05] [1, 2, 3, 4] String1\n [20150302 22:01:05] [1, 2, 3, 4] St +ring2\n [20150302 22:01:05] [1, 2, 3, 4] String3\n [20150302 22:01:05 +] [1, 2, 3, 4] String4\n [20150302 22:01:05] [1, 2, 3, 4] String5\n [ +20150302 22:01:05] [1, 2, 3, 4] String6\n [20150302 22:01:05] [1, 2, +3, 4] String7\n"; my @matches = $initialStr =~ /\[\d+ \d{2}:\d{2}:\d{2}\]\s+(.+)\n/g; print Dumper \@matches;

This assigns the text after the timestamp and all following whitespace to an element of @matches.

As to why the following regular expression doesn't work:

my @matches = ( $initialStr =~ /\d+:\d+:\d+/ );

What happens here is $initialStr =~ /\d+:\d+:\d+/ is being evaluated in scalar context because of the parentheses making it a single element of a list. Therefore, the result you get is the number of occurences of the given pattern in $initialStr and since /g is not used it's either 0 or 1.

Furthermore, to capture matches into an array, which is what you're trying to do here, you need to add capture groups into the regular expression.

Replies are listed 'Best First'.
Re^2: regex remove blank/whitespace until first occurrence of specific character "["
by thanos1983 (Parson) on Mar 03, 2015 at 09:23 UTC

    Hello kroach,

    Thank you for your time and effort answering my question. All start to make sense step by step thanks to your explanation. So many things still to learn.

    Seeking for Perl wisdom...on the process of learning...not there...yet!

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2020-10-29 03:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (267 votes). Check out past polls.

    Notices?