Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Regex Question

by keszler (Priest)
on Sep 10, 2013 at 17:07 UTC ( #1053322=note: print w/replies, xml ) Need Help??

in reply to Regex Question

push @svcDesc, "$1:$2" while ($htmlStream->get_trimmed_text('/td') =~ +/Protocol:\s(TCP|UDP)[^\n]+Destination\sPort:\s([0-9\-]+)/g);
Note that I removed the outer set of parens in the regex.

Replies are listed 'Best First'.
Re^2: Regex Question
by clegane (Novice) on Sep 10, 2013 at 18:28 UTC

    This is close. I should have pointed out that each cell can contain multiple lines. The sample text I posted was one cell. I'm having trouble with greediness/unknown numbers of occurrences in a single line. One line might contain

    something, Protocol: UDP, something, Destination Port: x-y, something, something, Protocol: TCP, something, Destination Port: a-b, something

    I need to extract each protocol/port pair into an array, and there's an unknown number. Protocol always comes before port, but not always immediately.

Re^2: Regex Question
by clegane (Novice) on Sep 10, 2013 at 18:41 UTC

    I've got the following going, but it's only getting the first match. If I remove the '?', it only grabs the last match. I need it to get them all. Adding a 'g' at the end doesn't seem to help

    push @svcDesc, "$1:$2" while ($htmlStream->get_trimmed_text('/td') =~ /Protocol:\s(TCP|UDP).+?Destination\sPort:\s([0-9\-]+)/);

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2018-01-20 20:57 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (227 votes). Check out past polls.