http://qs321.pair.com?node_id=308264


in reply to Re: how do I check for this rule
in thread how do I check for this rule

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

Replies are listed 'Best First'.
Re: how do I check for this rule
by Abigail-II (Bishop) on Nov 19, 2003 at 10:46 UTC
    Or just:
    $str !~ /XXX(?!\s*\n+YYY)/;

    Abigail