Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^3: Regex Tool

by Dietz (Curate)
on Jun 30, 2006 at 06:53 UTC ( #558521=note: print w/ replies, xml ) Need Help??


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

Just for your interest:

Multiple ^ or $ anchors would be legal.
The /m modifier in combination with the /s modifier would match the intended behaviour.
/m: match over multiple lines
/s: . matches everything (even newlines)

Note that you would have to insert code to match any newline either by . or by \s. See example below.

my $text = <<"END"; a sample line item duhduh foo END $text =~ /^item.*(^duhduh$)\s*foo$/sm; print "\$1: '$1'\n"; # prints "$1: 'duhduh'"


Comment on Re^3: Regex Tool
Download Code
Replies are listed 'Best First'.
Re^4: Regex Tool
by a (Friar) on Jul 01, 2006 at 14:22 UTC
    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
Node Status?
node history
Node Type: note [id://558521]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (10)
As of 2015-07-31 08:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (276 votes), past polls