Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: how do I check for this rule

by moxliukas (Curate)
on Nov 19, 2003 at 10:14 UTC ( [id://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.

Replies are listed 'Best First'.
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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://308259]
help
Chatterbox?
and the web crawler heard nothing...

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

    No recent polls found