Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: Re: how do I check for this rule

by Roger (Parson)
on Nov 19, 2003 at 10:35 UTC ( #308264=note: print w/replies, xml ) Need Help??

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)/;


Log In?

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (7)
As of 2020-11-25 19:35 GMT
Find Nodes?
    Voting Booth?

    No recent polls found