Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Help with pattern matching quantifiers

by ww (Archbishop)
on Oct 24, 2016 at 19:14 UTC ( #1174624=note: print w/replies, xml ) Need Help??


in reply to Help with pattern matching quantifiers

... or just use split:

#!/usr/bin/perl use strict; use warnings; use 5.018; #1174610 my $data="-8-18 -9-10 -8 -7 -9-10 -9 -6 -5 -8 12 -7-10 -8 -8 -8 -8 -6 -3 2 2 -2 -8 1 -2 -5 -1 -4 -6 6 -4 -6 -5 -1 0 -8 -6 -6 3 -6 -3 -6 -2 -5 -5 -5 -4 4 -3 -2 -2 -3 -5 1 3 -7 -4 3 1 -6 -5 -6 4 -5 -6 -5 -6 3 1 -5 -3 -2 -5 -1 3 -4 -3 4 2 -8 -6 -7 -8 -8 -8 7 -8 -9 -9 -7 -8 -6 -8 -4 -7 -9 -9 -8"; my @data = split(/ +/,$data); my $i=1; for my $item(@data) { if ( $item =~/\d+-\d+/ ) { $item =~ s/(-\d+)/ $1/g; if ($i == 38 ) { print "\n$item "; $i = 1; }else{ print "$item "; $i = $i+3; } }else{ if ($i == 38 ) { print "\n$item "; $i = 1; }else{ print "$item "; $i = $i+3; } } } =head C:\> 1174610.pl -8 -18 -9 -10 -8 -7 -9 -10 -9 -6 -5 -8 12 -7 -10 -8 -8 + -8 -8 -6 -3 2 2 -2 -8 1 -2 -5 -1 -4 -6 6 -4 -6 -5 -1 0 -8 -6 + -6 3 -6 -3 -6 -2 -5 -5 -5 -4 4 -3 -2 -2 -3 -5 1 3 -7 +-4 3 1 -6 -5 -6 4 -5 -6 -5 -6 3 1 -5 -3 -2 -5 -1 3 -4 - +3 4 2 -8 -6 -7 -8 -8 -8 7 -8 -9 -9 -7 -8 -6 -8 -4 -7 -9 + -9 -8 =cut

But the preceding reply (Re: Help with pattern matching quantifiers from tybalt89) is preferable, both for use of  __DATA__ and for the consistency of spacing between values in the output.

But it intrigued me to write the extra code to hold line lengths to a relatively narrow page or screen.

Replies are listed 'Best First'.
Re^2: Help with pattern matching quantifiers
by rsFalse (Pilgrim) on Oct 28, 2016 at 09:47 UTC
    #!/usr/bin/perl use strict; use warnings; while(<DATA>) { my @values = map { split /\d\K\b/ } split ' '; print "@values\n"; } __DATA__ -8-18 -9-10 -8 -7 -9-10 -9 -6 -5 -8 12 -7-10 -8 -8 -8 -8 -6 -3 2 2 -2 -8 1 -2 -5 -1 -4 -6 6 -4 -6 -5 -1 0 -8 -6 -6 3 -6 -3 -6 -2 -5 -5 -5 -4 4 -3 -2 -2 -3 -5 1 3 -7 -4 3 1 -6 -5 -6 4 -5 -6 -5 -6 3 1 -5 -3 -2 -5 -1 3 -4 -3 4 2 -8 -6 -7 -8 -8 -8 7 -8 -9 -9 -7 -8 -6 -8 -4 -7 -9 -9 -8
    Or split by any num of spaces, and additionally split with zero-length matches (find decimal, don't grab previous, find word bound. (e.g.: '-8-18' -> ('-8', '-18')).

    Look, that your regex ([\d\-]+) will take both numbers '-8-18' into $1.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (7)
As of 2018-07-16 06:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?















    Results (333 votes). Check out past polls.

    Notices?