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

Re^4: Regex Tool

by a (Friar)
on Jul 01, 2006 at 14:22 UTC ( [id://558764]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Regex Tool
in thread Regex Tool

Just a point here - something I finally got only after a number of rereadings of the section in J. Friedl's excellent Mastering Regular Expressions (O'Reilly) the /m and /s are a little more complicated.
/m: better remembered as 'multi' mode - affects 'multiple' (2) meta chars, the anchors (^ and $)
/s: 'single' mode - affects one meta char, the dot '.'

/s changes the dot's normal definition - match any char except a new line (\n). In single mode the dot can match \n too which allows regex phrases like:
.*

to match across the end of line. That all it does and so its why the "item.*" in your example matches the end of line.
/m changes the ^ and $ anchors from absolute beginning and end of string to match beginning and end of a line, as marked by new line chars. Which is useful w/ the '/g' option, for example:

local $/ = undef; my $whole_file = <>; # slurp while ( $whole_file =~ /^(.*)$/mg ) { # process line by line print "Got: $1\n"; }
Not a useful snippet but ... two notes - the '\n' on the print stmt and notice the diff if you put an 's' in the match options

a

Log In?
Username:
Password:

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

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

    No recent polls found