Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: Regular Expressions

by Roy Johnson (Monsignor)
on May 17, 2005 at 21:13 UTC ( [id://458001]=note: print w/replies, xml ) Need Help??


in reply to Re: Regular Expressions
in thread Regular Expressions

There's an error in your understanding, if you think that the ^ should cause the expression not to match. It matches the beginning of the string, then multiple digits any number of times. Then the last capture has to match at the end of string.

You see, the * allows the group to match multiple times, and each time through, the capture group gets overwritten. So it can match everything up to "81" the first pass, then throw away that capture, capture "1" instead, and then the \1 matches, and the whole match succeeds.

Sounds like Java's regex engine just doesn't try hard enough.


Caution: Contents may have been coded under pressure.

Replies are listed 'Best First'.
Re^3: Regular Expressions
by Anonymous Monk on May 17, 2005 at 21:38 UTC
    I understand that ^ here is "from the begining of the sting".
    I didn`t know, that each match would overwrite capture group. Thanks. :)
    I can`t find something about overwiting capture group in perlretut (am I a bad finder?). Are there any docs about it?
    Thanks. :)

    Nick <znick at inbox dot ru>
      I don't think it's documented. It's just a case of having one place to store a capture and capturing into it multiple times. Each time a capture happens, the old value is overwritten. I wish it were documented, though.

      Caution: Contents may have been coded under pressure.
        It is documented. perldoc perlre
            The numbered match variables ($1, $2, $3, etc.) and the related
            punctuation set ($+, $&, $`, $', and $^N) are all dynamically scoped
            until the end of the enclosing block or until the next successful match,
            whichever comes first. (See "Compound Statements" in perlsyn.)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2024-04-24 07:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found