in reply to Re: Regex question
in thread Regex question
What does this mean: 'I strip all spaces and stuff out of the string upfront.' ???
Make whitesspace optional with \s* and add a few more tests:
my @valid_strings = ( ['240 x 240 x 2/3600', 'Sample'], ['10000 x 240 x 2/3600', 'Max number'], ['1 x 240 x 2/3600', 'Min number'], ['120x240x2/3600', 'Number sans whitespace'], ['120x240x2 / 3600', 'Fraction with whitespace'], ); my $number = qr/10000|[1-9]\d{0,3}/; my $valid = qr{\b$number\s*x\s*$number\s*x\s*$number\s*/\s*$number\b} +; #my $valid = qr{\A$number\s*x\s*$number\s*x\s*$number\s*/\s*$number\z +}; #my $valid = qr{^$number\s*x\s*$number\s*x\s*$number\s*/\s*$number$}; my @invalid_strings = ( ['240 * 240 x 2/3600', 'Missing operator'], ['10001 x 240 x 2/3600', 'number exceeds max'], ['100 x 10001 x 2/3600', 'number exceeds max'], ['100 x 10001 x 2/10001', 'number exceeds max'], ['240x240x10001/3600', 'number exceeds max'], ['0 x 240 x 2/3600', 'number less than minimum'], ['240 x 240 x 2/0', 'Cannot divide by zero'], ['240 x 240 x 0/3600', 'Numerator cannot be zero'], );
|
---|