Beefy Boxes and Bandwidth Generously Provided by pair Networks DiBona
laziness, impatience, and hubris
 
PerlMonks  

Re^3: Putting special elements from a row into an array

by agianni (Hermit)
on Mar 22, 2007 at 14:20 UTC ( #606033=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Putting special elements from a row into an array
in thread Putting special elements from a row into an array

Split isn't going to get your far on this. What you need is a good regex. Try this:

while ( my $line = <DATA>){ my( @a, @b ); my ( $junk, $useful ) = split /\;/, $line; my @elements = $useful =~ m/ (\d+ # some numbers (?: # followed by (don't capture) \(.*?\) # other stuff (non-greedy) in parens )? # (optionally) ) # end capture /smxg; for my $element ( @elements ){ if ( $element =~ /\(.*\)/ ){ push @b, $element; } else{ push @a, $element; } } # do something with @a and @b } __DATA__ 2302.1;2302, 2304(3-8, 92-99), 2305(2, 4-9) 231.1;2301, 2303, 2304(1, 2, 90, 91), 2305(1, 3), 2306, 2307, 2308

I'm sure you could do this more compactly, but I didn't take the time to optimize. The first RE does the split you're looking for, followed by a check for each item to see if it contains parens.

perl -e 'split//,q{john hurl, pest caretaker}and(map{print @_[$_]}(joi +n(q{},map{sprintf(qq{%010u},$_)}(2**2*307*4993,5*101*641*5261,7*59*79 +*36997,13*17*71*45131,3**2*67*89*167*181))=~/\d{2}/g));'


Comment on Re^3: Putting special elements from a row into an array
Select or Download Code
Re^4: Putting special elements from a row into an array
by ultibuzz (Monk) on Mar 22, 2007 at 14:46 UTC

    works great, but i need to say that i don't understand this regex thingy ;)
    still nub in regex and learning allday

    thx alot
    kd ultibuzz

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (11)
As of 2014-04-16 23:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (436 votes), past polls