Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
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
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 contemplating the Monastery: (5)
As of 2014-08-01 04:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (256 votes), past polls