Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re^2: More complicated regular expression?

by jaldama (Acolyte)
on Jan 26, 2012 at 15:29 UTC ( #950125=note: print w/replies, xml ) Need Help??

in reply to Re: More complicated regular expression?
in thread More complicated regular expression?

I'm trying
if ($found_addr =~ m/address(.*)\d/){ print "$1\n"; }
But it's cutting off the last digit of the address for some reason.

Replies are listed 'Best First'.
Re^3: More complicated regular expression?
by VinsWorldcom (Vicar) on Jan 26, 2012 at 15:35 UTC

    And I bet you're getting a space in front of the 74. Your "\d" at the end is matching a single digit character and since it's at the end of your parenthesis grabbing match, it's taking the last character - excluding it from your match.

    Use JavaFan's regex above and all will be well.

      You're right, and JavaFan's code worked perfect. Thanks a lot
Re^3: More complicated regular expression?
by Anonymous Monk on Jan 26, 2012 at 15:40 UTC
    use YAPE::Regex::Explain; print YAPE::Regex::Explain->new( qr/address(.*)\d/ )->explain; __END__ The regular expression: (?-imsx:address(.*)\d) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?-imsx: group, but do not capture (case-sensitive) (with ^ and $ matching normally) (with . not matching \n) (matching whitespace and # normally): ---------------------------------------------------------------------- address 'address' ---------------------------------------------------------------------- ( group and capture to \1: ---------------------------------------------------------------------- .* any character except \n (0 or more times (matching the most amount possible)) ---------------------------------------------------------------------- ) end of \1 ---------------------------------------------------------------------- \d digits (0-9) ---------------------------------------------------------------------- ) end of grouping ----------------------------------------------------------------------

    So .* (matching the most amount possible) followed by \d, a digit. If you want the digit to be captured, move it inside the parens.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2016-10-22 17:44 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (297 votes). Check out past polls.