Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

(tye)Re: Yet another regex bug.

by tye (Sage)
on Nov 12, 2002 at 05:32 UTC ( [id://212203]=note: print w/replies, xml ) Need Help??


in reply to Yet another regex bug.

I disagree that the + should modify the comment. The comment should behave the same whether it is written (?#comment) or just as #comment\n when using /x. And I don't think anyone would argue that a + at the start of the next line should modify the #comment\n at the end of the previous line. Consider:

while( <DATA> ) { print; if( m/^([a-z_]\w+)=(\d{1,9}|[a-z_]\w*)$/ ) { print "($1)($2)\n"; } my( $key, $value ); ( $key, $value )= m{ ^ ( [a-z_] # Key name must start with a letter or '_' \w # Subsequent characters can also be digits + # Key names must be at least 2 characters ) = ( # The value can be: \d # If it starts with a digit, it is an intege +r {1,9} # Only up to 9-digit values are allowed. | # or, the value can be: [a-z_] # An identifier must start with a letter or +'_' \w # Subsequent characters can also be digits * # No length limit on IDs ) $ }x && do { print "# ($1)($2)\n"; print "# ($key)($value)\n"; }; ( $key, $value )= m{ ^ ( [a-z_] (?# Key name must start with a letter or '_') \w (?# Subsequent characters can also be digits) + (?# Key names must be at least 2 characters) ) = ( (?# The value can be:) \d (?# If it starts with a digit, it is an inte +ger) {1,9} (?# Only up to 9-digit values are allowed.) | (?# or, the value can be:) [a-z_] (?# An identifier must start with a letter o +r '_') \w (?# Subsequent characters can also be digits +) * (?# No length limit on IDs) ) $ }x && do { print "(?# ($1)($2) )\n"; print "(?# ($key)($value) )\n"; }; print $/; } __END__ this=that one=12
which outputs:
this=that (this)(that) # (this)(that) # ()() (?# (this)(that) ) (?# (1)() ) one=12 (one)(12) # (one)(12) # ()() (?# (one)(12) ) (?# (1)() )
Note how $1 and $2 agree with me and only the return value from m// shows the indicated bug.

        - tye

Log In?
Username:
Password:

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

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

    No recent polls found