140 likes | 212 Views
Chapter 14. Perl-Compatible Regular Expressions Part 1. p reg_match. The match function is int preg_match (string $pattern , string $ str ) 1 st argument is the pattern 2 nd argument is the subject string Returns number of matches found:
E N D
Chapter 14 Perl-Compatible Regular Expressions Part 1
preg_match • The match function is • intpreg_match(string $pattern, string $str ) • 1st argument is the pattern • 2nd argument is the subject string • Returns number of matches found: • 1(true) if there is a match – it stops at the first match found! • 0(false) otherwise
pcre.php • Script 14.1 on page 435 • http://cscdb.nku.edu/csc301/frank/ch14/pcre.php • ch14\pcre.php
Character Classes • [A-Z] uppercase letter • [a-z] lowercase letter • [0-9] digit • {5} exactly five • {3,} three or more • {1,4} one to four
Metacharacters • ^ beginning of string • $ end of string
Regular Expression • Username – 5 to 10 lowercase letters? $pattern = '/^[a-z]{5,10}$/'; if (!preg_match($pattern, $username)) { echo "<p>$username is invalid.</p>"; }
Regular Expressions • Social Security Number 123-45-6789 $pattern = '/^[0-9]{3}-[0-9]{2}-[0-9]{4}$/'; if (!preg_match($pattern, $ssn)) { echo "<p>$ssn is invalid.</p>"; }
Character classes • \d any digit • \D any non-digit • \w Any letter, number, or underscore • \W Anything that is not a letter, number, or underscore • \s whitespace (space, tab, new line, etc.) • \S Any non-whitespace
Regular Expressions • Social Security Number 123-45-6789 $pattern = '/^\d{3}-\d{2}-\d{4}$/'; if (!preg_match($pattern, $ssn)) { echo "<p>$ssn is invalid.</p>"; }
Metacharacters • [0-9]* * = zero or more • [A-Z]+ + = one or more • . . = match any character • ([A-Z]\. )? ? = either zero or one
Regular Expressions • Last name: Frank $pattern = '/^[A-Z][a-z]+$/'; if (!preg_match($pattern, $last)) { echo "<p>$last is invalid.</p>"; }
Regular Expressions • Name: Charles Frank or Charles E. Frank $pattern = '/^[A-Z][a-z]+ ([A-Z]\. )?[A-Z][a-z]+ $/'; if (!preg_match($pattern, $name)) { echo "<p>$name is invalid.</p>"; }
Zip Code • Page 444 • /^(\d{5}(-\d{4})?$/
Email Address • Page 445 • /^[\w.]+@[\w.-]+\.[A-Za-z]{2,6}$/