Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: how do I check for this rule

by moxliukas (Curate)
on Nov 19, 2003 at 10:14 UTC ( #308259=note: print w/ replies, xml ) Need Help??


in reply to how do I check for this rule

/XXX\s*\n+YYY/sg;

UPDATE: I have misread the question first and thought that the monk wanted to find all occurances rather than validate them. Please read the answer that Roger provided below. That's what English being not the first language does for you -- my mistake.


Comment on Re: how do I check for this rule
Download Code
Re: Re: how do I check for this rule
by Roger (Parson) on Nov 19, 2003 at 10:35 UTC
    Hang on, not so fast. ;-)

    Your regular expression will only find matching occurances of XXX ... YYY, *NOT* to validate all occurances.

    To validate a sequence, you will have to make sure there is no mismatches of XXX, and hence require a bit more work.

    use strict; my $data; { local $/; $data = <DATA>; } # number of times didn't match XXX ... YYY # is total number of XXX minus the XXX ... YYY # pattern appears. my $non_match = $#{[$data =~ /(XXX)/gs]} - $#{[$data =~ /(XXX\s*\n+YYY)/gs]}; print !$non_match ? "All sequences of XXX - YYY are ok\n" : "$non_match bad sequences found\n"; __DATA__ XXX YYY XXX ZZZ XXXYYY
      Or just:
      $str !~ /XXX(?!\s*\n+YYY)/;

      Abigail

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2014-10-21 03:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (95 votes), past polls