Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: matching every occurrence of a regex

by virtualsue (Vicar)
on Jan 07, 2003 at 14:01 UTC ( [id://224970]=note: print w/replies, xml ) Need Help??


in reply to matching every occurrence of a regex

Hi Becky,
It would be interesting to know how $string gets its value. It appears you are only getting it one line at a time, which is why you only get the first match. I've modified your program very slightly by adding a loop and it prints out all 3 values from the sample lines you provided.
while (<DATA>) { if (/\w{1,12}\s+(\d{1,5})\s+[a-zA-Z]{4}/sm){ print $1, "\n"; } } __DATA__ BC001593 91 NPSL BC001593 262 NASS BC001593 293 NAST
You know your data better than we do, but on the basis of what you've said it looks as though the regex could be simplified or even eliminated through the use of split like so:
while (<DATA>) { my $pos = (split ' ')[1]; print $pos,"\n"; } __DATA__ BC001593 91 NPSL BC001593 262 NASS BC001593 293 NAST
Just food for thought. This split trick will only work if your value of interest is always the 2nd field on each line.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (2)
As of 2024-04-20 05:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found