Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

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

    Abigail

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2020-07-11 14:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?