Validation by Pattern Matching
Problem
You need to compare a value to a set of values that is difficult to specify literally without writing a really ugly expression.
Solution
Use pattern matching.
Discussion
Pattern matching is a powerful tool for validation because it allows
you to test entire classes of values with a single expression. You
can also use pattern tests to break up matched values into subparts
for further individual testing, or in substitution operations to
rewrite matched values. For example, you might break up a matched
date into pieces so that you can verify that the month is in the
range from 1 to 12 and the day is within the number of days in the
month. Or you might use a substitution to reorder
MM-DD-YY
or
DD-MM-YY
values into
YY-MM-DD
format.
The next few sections describe how to use patterns to test for several types of values, but first let’s take a quick tour of some general pattern-matching principles. The following discussion focuses on Perl’s regular expression capabilities. Pattern matching in PHP and Python is similar, though you should consult the relevant documentation for any differences. For Java, the ORO pattern matching class library offers Perl-style pattern matching; Appendix A indicates where you can get it.
In Perl, the pattern constructor is
/
pat
/
:
$it_matched = ($val =~ /pat
/); # pattern match
Put an i
after the
/
pat
/
constructor to make the pattern match case insensitive:
$it_matched = ($val =~ /pat
/i); # case-insensitive match
To use a character ...
Get MySQL Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.