in reply to does code help regex match numeric ranges?

AlwaysLearning 
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

Replies are listed 'Best First'.
Re^2: does code help regex match numeric ranges?
by AlwaysLearning (Sexton) on Nov 06, 2007 at 20:44 UTC
    Thanks, this is what I was looking for, something in which the numbers (255 and 233) could be changed by a human without reworking the whole pattern, and spending a not insignificant time validating that it worked correctly.

    Too bad it is so long, but better that, in this case, than making changing it difficult.

    Of course, there are other conditions that will surround the numbers, that are nicely done in regex form, to select which numbers get evaluated.