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

Re^3: Pattern matching

by AnomalousMonk (Archbishop)
on Nov 10, 2018 at 23:50 UTC ( [id://1225550]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Pattern matching
in thread Pattern matching

... can you explain to me how to read the patterns ...

Because parv's regex contains nothing that is not supported by Perl version 5.6, the YAPE::Regex::Explain module can help.

c:\@Work\Perl\monks>perl -wMstrict -le "use YAPE::Regex::Explain; ;; my $rx = qr{ \b (MODULE \s+ [A-Z]+[0-9]+) \s* [(] .+? [)] }x; ;; print YAPE::Regex::Explain->new($rx)->explain; " The regular expression: (?x-ims: \b (MODULE \s+ [A-Z]+[0-9]+) \s* [(] .+? [)] ) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?x-ims: group, but do not capture (disregarding whitespace and comments) (case-sensitive) (with ^ and $ matching normally) (with . not matching \n): ---------------------------------------------------------------------- \b the boundary between a word char (\w) and something that is not a word char ---------------------------------------------------------------------- ( group and capture to \1: ---------------------------------------------------------------------- MODULE 'MODULE' ---------------------------------------------------------------------- \s+ whitespace (\n, \r, \t, \f, and " ") (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- [A-Z]+ any character of: 'A' to 'Z' (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- [0-9]+ any character of: '0' to '9' (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- ) end of \1 ---------------------------------------------------------------------- \s* whitespace (\n, \r, \t, \f, and " ") (0 or more times (matching the most amount possible)) ---------------------------------------------------------------------- [(] any character of: '(' ---------------------------------------------------------------------- .+? any character except \n (1 or more times (matching the least amount possible)) ---------------------------------------------------------------------- [)] any character of: ')' ---------------------------------------------------------------------- ) end of grouping ----------------------------------------------------------------------


Give a man a fish:  <%-{-{-{-<

Replies are listed 'Best First'.
Re^4: Pattern matching
by parv (Parson) on Nov 11, 2018 at 01:46 UTC

    Thanks to you & kevbot for posting about YAPE::Regex::Explain. That was what I wanted to do too before posting my explanation.

    In order to use the Y::R::E module installed in my own directory with system perl, I needed to set $PREL5LIB obviously. But ...

    export PERL5LIB="/dir/lib/perl5"

    ... was not enough. I had to add 2 more sub-directories ...

    export PERL5LIB="/dir/lib/perl5:/dir/lib/perl5/site_perl:/dir/lib/perl +5/site_perl/mach"

    ... why could perl not find the last two directory paths by itself in year 2018? (Yes, I am aware the virtues of installing, compiling my own perl. And I love that; had built multiple times on FreeBSD & CentOS.)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (5)
As of 2024-03-28 13:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found