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

Re: Yet another regex bug.

by VSarkiss (Monsignor)
on Nov 11, 2002 at 22:55 UTC ( #212132=note: print w/replies, xml ) Need Help??

in reply to Yet another regex bug.

I would drive this from the principle that removing the comment should make no difference to what the program does. That is, your example should be exactly the same as /abc+/; it should match one or more c. If it's acting the same as /(?:abc)+/, I'd call it a bug.

Replies are listed 'Best First'.
Re: Re: Yet another regex bug.
by hossman (Prior) on Nov 12, 2002 at 03:11 UTC

    That implies that "removing the comment" is the translation...

    /abc(?#comment)+/  ----> /abc(?#comment)+/ /abc+/

    Where as I (and evidently at least 2 other people) expect it to be the translation...

    /abc(?#comment)+/  ------> /abc()+/

    Updated: forgot to acctually make the translation i was trying to show.

      Well, your first line is the identity transformation, which isn't removing anything. ;-)

      The parentheses surrounding the ?# are part of the syntax; that is, the comment marker in a regexp begins (?#, not ?#. (Check perlre: all the "funny" extended-pattern elements start with (?, one of the reasons being that it's a mnemonic to "question" what's coming next.1) Thus if you're removing the comment you should remove the parentheses as well.

      1I don't buy the explanation, by the way, but it's there..

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2017-08-18 19:19 GMT
Find Nodes?
    Voting Booth?
    Who is your favorite scientist and why?

    Results (309 votes). Check out past polls.