Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Help with Perl RE

by johngg (Canon)
on Jan 22, 2009 at 23:46 UTC ( [id://738349]=note: print w/replies, xml ) Need Help??


in reply to Help with Perl RE

A couple of useful features are the ability to pre-compile a regular expression, storing it in a variable for later use and the ability to use extended syntax to break the pattern up with whitespace and comments to make it more readable. Here is your pattern given such treatment.

my $rxLine = qr {(?xs) # Use extended regular expression syntax (x) # allowing whitespace in the pattern for # readability, and comments. Allow the . # (regexp wildcard metacharacter) to match # a newline (s) ^ # Anchor pattern to start of string ( # Open capture group (1st) [^{};]+ # Negated character class, anything except {, } # or ; characters. + quantifier is 1 or more # of, greedy matching so will match as many # as possible [{};] # Character class, any of {, } or ; characters. # No quantifier so exactly 1 of ) # Close capture group (1st) ( # Open capture group (2nd) \s* # Whitespace character. * quantifier is 0 or more # of, greedy \S+ # Non-whitespace character. 1 or more, greedy .* # Any character (including newline because of the # s modifier). 0 or more, greedy ) # Close capture group (2nd) $ # Anchor pattern to end of string }; if( $line =~ $rxLine ) { # Do something here }

Have a look at the documentation links provided by kennethk for explanations of things like character classes and greedy versus non-greedy quantifiers.

I hope this is helpful.

Cheers,

JohnGG

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2025-04-20 00:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.