Novice regexps
Regular expressions allow you to form sets of words using brackets [ and ]. For example, I can define a set [Ff] that will match "F" or "f". You can also use sets to accept ranges, for example [A-Z] will accept all uppercase letters, [A-Za-z] will accept all letters whether uppercase or lowercase, and [a-z0-9] will accept lowercase letters and numbers only. Inside sets, the caret symbol ^ means "not", therefore [^A-Z] will accept everything that is not an uppercase letter, and [^A-Za-z0-9] will accept symbols only - no uppercase letters, no lowercase letters, and no numbers.
Here is a list of some novice regular expressions, again along with string used to match, and whether or not a match is made:
|
Regexp |
String |
Result |
|
/[Ff]oo/ |
Foo |
Match |
|
/[^Ff]oo/ |
Foo |
No match; the regexp says "Anything that is not F or f, followed by "oo". This would match "too", "boo", "zoo", etc. |
|
/[A-Z][0-9]/ |
K9 |
Match
|
|
/[A-S]esting/ |
Testing |
No match; the acceptable range for the first character ends at S |
|
/[A-T]esting/ |
Testing |
Match; the range is inclusive |
|
/[a-z]esting[0-9][0-9]/ |
TestingAA |
No match |
|
/[a-z]esting[0-9][0-9]/ |
testing99 |
Match |
|
/[a-z]esting[0-9][0-9]/ |
Testing99 |
No match; case sensitivity! |
|
/[a-z]esting[0-9][0-9]/i |
Testing99 |
Match; case problems fixed |
|
/[^a-z]esting/ |
Testing |
Match; first character can be anything that is not a, b, c, d, e, etc (lowercase) |
|
/[^a-z]esting/i |
Testing |
No match; the range excludes lowercase characters only, so you would think T would be fine. However, the "i" at the end makes it insensitive, which turns [^a-z] into [^a-zA-Z] |
The last one is a common "gotcha", so make sure you understand why it does not match.
Next chapter: Advanced regexps >>
Previous chapter: Basic regexps with preg_match() and preg_match_all()
Jump to:
Home: Table of Contents



Copyright 2012 Future Publishing Limited (company
registered number 2008885), a company registered
in England and Wales whose registered office is at
Beauford Court, 30 Monmouth Street, Bath, BA1 2BW, UK