So What's A $#!%% Regular Expression, Anyway?! - Ranging Far And Wide... (
Page 2 of 3 )
Just as you can specify a range for the number
of characters to be matched, you can also specify a range of characters. For example,
the range
/[A-Z]/
would match a single instance of all upper-case alphabetic characters, while
/[a-z]/
would match all lowercase letters, and
/[0-9]/
would match all numbers between 0 and 9.
Using these three ranges, it's pretty easy to create a regular expression to
match an alphanumeric field.
/([a-z][A-Z][0-9])+/
would match a string that was purely alphanumeric in nature, like "aB0" - although
not "abc". Note the parentheses around the patterns - contrary to what you might
think, these are not there purely to confuse you; they come in handy when grouping
sections of a regular expression together.
Choice is very important when building regular expressions - as in most other
languages, it's possible to use the pipe [|] operator to indicate multiple options
in a regex. For example,
/to|too|2/
would match any one of the three strings "to", "too" and "2". As you can imagine,
this comes in pretty useful when building expressions that have many possible
variants.
You can also invert the regular sense of a regular expression with the negation
operator, represented by a caret [^] - so the pattern
/[^A-C]/
would match everything but that which appears in the expression - namely, everything
except the letters "A", "B" and "C". Note how the caret, when used in a bracketed
expression, is used to invert the match; this behaviour is different from when
it is used outside a bracketed expression, where it serves as a pattern anchor.