Is there a way to get the regex to fail in the cases where true is not printed?
This looks simple at the first moment (maybe I didn't correctly understand the task you intended). You could generate a regular expression 'on thy fly' depending on the captured value.
$_ = 254; my $r = qr{ ^ # regex bound to start of line ((?>\d+)) # what to capture, don't backtrack: ( +?> ) (??{ $1<255 && $1>233 # what is looked for ? '' # if yes, let the regex succeed : '(?!)' # if no, let the regex bail }) }x; print "true ($1)" if /$r/;
You can't "modify" the regex outcome from within a simple code assertion ?{}, you'll need to use the dynamic regex assertion ??{} for that.
Regards
mwa
In reply to Re: does code help regex match numeric ranges?
by mwah
in thread does code help regex match numeric ranges?
by AlwaysLearning
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |