<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=PHP%2FString%2FRegular_Expressions</id>
		<title>PHP/String/Regular Expressions - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=PHP%2FString%2FRegular_Expressions"/>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=PHP/String/Regular_Expressions&amp;action=history"/>
		<updated>2026-04-04T16:23:50Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wbex.ru/index.php?title=PHP/String/Regular_Expressions&amp;diff=1332&amp;oldid=prev</id>
		<title> в 10:37, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=PHP/String/Regular_Expressions&amp;diff=1332&amp;oldid=prev"/>
				<updated>2010-05-26T10:37:30Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 10:37, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://wbex.ru/index.php?title=PHP/String/Regular_Expressions&amp;diff=1333&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=PHP/String/Regular_Expressions&amp;diff=1333&amp;oldid=prev"/>
				<updated>2010-05-26T07:07:30Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==^ and $ are line anchors.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
^     specifies the beginning of the line.&lt;br /&gt;
$     specifies the end of the line.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==\b and \B, equate to &amp;quot;On a word boundary&amp;quot; and &amp;quot;Not on a word boundary,&amp;quot; respectively.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?&lt;br /&gt;
    $string = &amp;quot;this is a test!&amp;quot;;&lt;br /&gt;
    if (preg_match(&amp;quot;/oo\b/i&amp;quot;, $string)) {&lt;br /&gt;
    }&lt;br /&gt;
    preg_match(&amp;quot;/oo\B/i&amp;quot;, $string);&lt;br /&gt;
    preg_match(&amp;quot;/no\b/&amp;quot;, &amp;quot;he said &amp;quot;no!&amp;quot;&amp;quot;);&lt;br /&gt;
    preg_match(&amp;quot;/royalty\b/&amp;quot;, &amp;quot;royalty-free photograph&amp;quot;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Brackets [] finds a range of characters.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Regexp [php] finds any string containing the character p or h. &lt;br /&gt;
[0�9] matches any decimal digit from 0 through 9.&lt;br /&gt;
[a�z] matches any character from lowercase a through lowercase z.&lt;br /&gt;
[A�Z] matches any character from uppercase A through uppercase Z.&lt;br /&gt;
[a�Z] matches any character from lowercase a through uppercase Z.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Character Classes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[ indicates the beginning of a character class. &lt;br /&gt;
- indicates a range inside a character class (unless it is first in the class). &lt;br /&gt;
^ indicates a negated character class (if found first). &lt;br /&gt;
] indicates the end of a character class.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Complete list of regular expression examples==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Expression                    Will match . . .&lt;br /&gt;
 &lt;br /&gt;
foo                           The string &amp;quot;foo&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
^foo                          &amp;quot;foo&amp;quot; at the start of a line&lt;br /&gt;
 &lt;br /&gt;
foo$                          &amp;quot;foo&amp;quot; at the end of a line&lt;br /&gt;
 &lt;br /&gt;
^foo$                         &amp;quot;foo&amp;quot; when it is alone on a line&lt;br /&gt;
 &lt;br /&gt;
[Ff]oo                        &amp;quot;Foo&amp;quot; or &amp;quot;foo&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
[abc]                         a, b, or c&lt;br /&gt;
 &lt;br /&gt;
[^abc]                        d, e, f, g, V, %, ~, 5, etc.everything that is not a, b, or c (^ is &amp;quot;not&amp;quot; inside character classes)&lt;br /&gt;
 &lt;br /&gt;
[A-Z]                         Any uppercase letter&lt;br /&gt;
 &lt;br /&gt;
[a-z]                         Any lowercase letter&lt;br /&gt;
 &lt;br /&gt;
[A-Za-z]                      Any letter&lt;br /&gt;
 &lt;br /&gt;
[A-Za-z0-9]                   Any letter or number&lt;br /&gt;
 &lt;br /&gt;
[A-Z]+                        One or more uppercase letters&lt;br /&gt;
 &lt;br /&gt;
[A-Z]*                        Zero or more uppercase letters&lt;br /&gt;
 &lt;br /&gt;
[A-Z]?                        Zero or one uppercase letters&lt;br /&gt;
 &lt;br /&gt;
[A-Z]{3}                      Three uppercase letters&lt;br /&gt;
 &lt;br /&gt;
[A-Z]{3,}                     A minimum of three uppercase letters&lt;br /&gt;
 &lt;br /&gt;
[A-Z]{1,3}                    One, two, or three uppercase letters&lt;br /&gt;
 &lt;br /&gt;
[^0-9]                        Any non-numeric character&lt;br /&gt;
 &lt;br /&gt;
[^0-9A-Za-z]                  Any symbol (not a number or a letter)&lt;br /&gt;
 &lt;br /&gt;
(cat|sat)                     Matches either &amp;quot;cat&amp;quot; or &amp;quot;sat&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
([A-Z]{3}|[0-9]{4})           Matches three letters or four numbers&lt;br /&gt;
 &lt;br /&gt;
Fo*                           F, Fo, Foo, Fooo, Foooo, etc.&lt;br /&gt;
 &lt;br /&gt;
Fo+                           Fo, Foo, Fooo, Foooo, etc.&lt;br /&gt;
 &lt;br /&gt;
Fo?                           F, Fo&lt;br /&gt;
 &lt;br /&gt;
.                             Any character except \n (new line)&lt;br /&gt;
 &lt;br /&gt;
\b                            A word boundary; e.g. te\b matches the &amp;quot;te&amp;quot; in &amp;quot;late&amp;quot; but not the &amp;quot;te&amp;quot; in &amp;quot;tell.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
\B                            A non-word boundary; &amp;quot;te\B&amp;quot; matches the &amp;quot;te&amp;quot; in &amp;quot;tell&amp;quot; but not the &amp;quot;te&amp;quot; in &amp;quot;late.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
\n                            Newline character&lt;br /&gt;
 &lt;br /&gt;
\s                            Any whitespace (new line, space, tab, etc.)&lt;br /&gt;
 &lt;br /&gt;
\S                            Any non-whitespace character&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Define a pattern and use parentheses to match individual elements within it==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?&lt;br /&gt;
$test = &amp;quot;Whatever you do, don&amp;quot;t panic!&amp;quot;;&lt;br /&gt;
if ( preg_match( &amp;quot;/(don&amp;quot;t)\s+(panic)/&amp;quot;, $test, $array ) ) {&lt;br /&gt;
  print &amp;quot;&amp;lt;pre&amp;gt;\n&amp;quot;;&lt;br /&gt;
  print_r( $array );&lt;br /&gt;
  print &amp;quot;&amp;lt;/pre&amp;gt;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Greedy and non-greedy matching==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?&lt;br /&gt;
$meats = &amp;quot;&amp;lt;b&amp;gt;Chicken&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Beef&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Duck&amp;lt;/b&amp;gt;&amp;quot;;&lt;br /&gt;
preg_match_all(&amp;quot;@&amp;lt;b&amp;gt;.*?&amp;lt;/b&amp;gt;@&amp;quot;,$meats,$matches);&lt;br /&gt;
foreach ($matches[0] as $meat) {&lt;br /&gt;
    print &amp;quot;Meat A: $meat\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
preg_match_all(&amp;quot;@&amp;lt;b&amp;gt;.*&amp;lt;/b&amp;gt;@&amp;quot;,$meats,$matches);&lt;br /&gt;
foreach ($matches[0] as $meat) {&lt;br /&gt;
    print &amp;quot;Meat B: $meat\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Greedy Qualifiers==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Qualifier What It Matches &lt;br /&gt;
* The preceding expression can be found any number of times, including one. &lt;br /&gt;
+ The preceding expression can be found one or more times. &lt;br /&gt;
? The preceding expression can be found at most once.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Greedy versus nongreedy matching==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$html = &amp;quot;&amp;lt;em&amp;gt;love&amp;lt;/em&amp;gt; you &amp;lt;em&amp;gt;.&amp;lt;/em&amp;gt;&amp;quot;;&lt;br /&gt;
// Greedy&lt;br /&gt;
$matchCount = preg_match_all(&amp;quot;@&amp;lt;em&amp;gt;.+&amp;lt;/em&amp;gt;@&amp;quot;, $html, $matches);&lt;br /&gt;
print &amp;quot;Greedy count: &amp;quot; . $matchCount . &amp;quot;\n&amp;quot;;&lt;br /&gt;
// Nongreedy&lt;br /&gt;
$matchCount = preg_match_all(&amp;quot;@&amp;lt;em&amp;gt;.+?&amp;lt;/em&amp;gt;@&amp;quot;, $html, $matches);&lt;br /&gt;
print &amp;quot;First non-greedy count: &amp;quot; . $matchCount . &amp;quot;\n&amp;quot;;&lt;br /&gt;
// Nongreedy&lt;br /&gt;
$matchCount = preg_match_all(&amp;quot;@&amp;lt;em&amp;gt;.+&amp;lt;/em&amp;gt;@U&amp;quot;, $html, $matches);&lt;br /&gt;
print &amp;quot;Second non-greedy count: &amp;quot; . $matchCount . &amp;quot;\n&amp;quot;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Grouping captured subpatterns==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$todo = &amp;quot;&lt;br /&gt;
first=a&lt;br /&gt;
next=B&lt;br /&gt;
last=C&lt;br /&gt;
&amp;quot;;&lt;br /&gt;
preg_match_all(&amp;quot;/([a-zA-Z]+)=(.*)/&amp;quot;, $todo, $matches, PREG_SET_ORDER);&lt;br /&gt;
foreach ($matches as $match) {&lt;br /&gt;
    print &amp;quot;The {$match[1]} action is {$match[2]} \n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Line Anchors==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
^ specifies the beginning of the line. &lt;br /&gt;
$ specifies the end of the line.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Match an IP address==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?&lt;br /&gt;
$test = &amp;quot;156.152.55.35&amp;quot;;&lt;br /&gt;
if ( preg_match( &amp;quot;/(\d+)\.(\d+)\.(\d+)\.(\d+)/&amp;quot;, $test, $array ) ) {&lt;br /&gt;
  print &amp;quot;&amp;lt;pre&amp;gt;\n&amp;quot;;&lt;br /&gt;
  print_r( $array );&lt;br /&gt;
  print &amp;quot;&amp;lt;/pre&amp;gt;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Matching a Valid E-mail Address==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
$regex = &amp;quot;/^[\w\d!#$%&amp;amp;&amp;quot;*+-\/=?^&amp;quot;{|}~]+(\.[\w\d!#$%&amp;amp;&amp;quot;*+-\/=?^&amp;quot;{|}~]+)*@([a-z\d][-a-z\d]*[a-z\d]\.)+[a-z][-a-z\d]*[a-z]$/&amp;quot;; &lt;br /&gt;
$values = array( &lt;br /&gt;
&amp;quot;user@example.ru&amp;quot;,&lt;br /&gt;
&amp;quot;user@example&amp;quot;&lt;br /&gt;
); &lt;br /&gt;
foreach ($values as $value) { &lt;br /&gt;
    if (preg_match($regex, $value)) { &lt;br /&gt;
        printf(&amp;quot;Found valid address: %s\n&amp;quot;, $value); &lt;br /&gt;
    } else { &lt;br /&gt;
        printf(&amp;quot;INVALID address: %s\n&amp;quot;, $value); &lt;br /&gt;
    } &lt;br /&gt;
} &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Matching a Valid IP Address==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
$good_ip = &amp;quot;192.168.0.1&amp;quot;; &lt;br /&gt;
$bad_ip = &amp;quot;1.334.10.10&amp;quot;; &lt;br /&gt;
$regex = &amp;quot;^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$&amp;quot; ;&lt;br /&gt;
if (ereg($regex, $good_ip)) { &lt;br /&gt;
    echo &amp;quot;&amp;quot;&amp;quot; . $good_ip . &amp;quot;&amp;quot; is a valid ip address.\n&amp;quot;; &lt;br /&gt;
} else { &lt;br /&gt;
    echo &amp;quot;&amp;quot;&amp;quot; . $good_ip . &amp;quot;&amp;quot; is an INVALID ip address.\n&amp;quot;; &lt;br /&gt;
} &lt;br /&gt;
if (ereg($regex, $bad_ip)) { &lt;br /&gt;
    echo &amp;quot;&amp;quot;&amp;quot; . $bad_ip . &amp;quot;&amp;quot; is a valid ip address.\n&amp;quot;; &lt;br /&gt;
} else {&lt;br /&gt;
    echo &amp;quot;&amp;quot;&amp;quot; . $bad_ip . &amp;quot;&amp;quot; is a INVALID ip address.\n&amp;quot;; &lt;br /&gt;
} &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Matching GUIDs/UUIDs==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
$uuid = &amp;quot;1111-1111-1111-1111&amp;quot;; &lt;br /&gt;
function printResults($str) { &lt;br /&gt;
if (eregi(&amp;quot;^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$&amp;quot;, $str)) { &lt;br /&gt;
    printf(&amp;quot;&amp;quot;%s&amp;quot; is a valid GUID/UUID.\n&amp;quot;, $str); &lt;br /&gt;
} else { &lt;br /&gt;
    printf(&amp;quot;&amp;quot;%s&amp;quot; is NOT a valid GUID/UUID.\n&amp;quot;, $str); &lt;br /&gt;
} &lt;br /&gt;
} &lt;br /&gt;
printResults($uuid); &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Matching using backreferences==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?&lt;br /&gt;
$ok_html  = &amp;quot;I &amp;lt;b&amp;gt;love&amp;lt;/b&amp;gt; shrimp dumplings.&amp;quot;;&lt;br /&gt;
if (preg_match(&amp;quot;@&amp;lt;[bi]&amp;gt;.*?&amp;lt;/[bi]&amp;gt;@&amp;quot;,$ok_html)) {&lt;br /&gt;
    print &amp;quot;Good for you! (OK, No backreferences)\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
if (preg_match(&amp;quot;@&amp;lt;([bi])&amp;gt;.*?&amp;lt;/\\1&amp;gt;@&amp;quot;,$ok_html)) {&lt;br /&gt;
    print &amp;quot;Good for you! (OK, Backreferences)\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Matching with |==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$text = &amp;quot;The files are c.gif, r.pdf, and e.jpg.&amp;quot;;&lt;br /&gt;
if (preg_match_all(&amp;quot;/[a-zA-Z0-9]+\.(gif|jpe?g)/&amp;quot;,$text,$matches)) {&lt;br /&gt;
    print &amp;quot;The image files are: &amp;quot; . implode(&amp;quot;,&amp;quot;,$matches[0]);&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Matching with character classes and anchors==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$thisFileContents = file_get_contents(__FILE__);&lt;br /&gt;
$matchCount = preg_match_all(&amp;quot;/\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/&amp;quot;,$thisFileContents, $matches);&lt;br /&gt;
print &amp;quot;Matches: $matchCount\n&amp;quot;;&lt;br /&gt;
foreach ($matches[0] as $variableName) {&lt;br /&gt;
    print &amp;quot;$variableName\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Matching with Greedy vs. Nongreedy Expressions==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
$teststring = &amp;quot;&amp;quot;Hello&amp;quot; and &amp;quot;Goodbye.&amp;quot;&amp;quot;; &lt;br /&gt;
$greedyresult = preg_replace(&amp;quot;/&amp;quot;.*&amp;quot;/&amp;quot;, &amp;quot;&amp;quot;***&amp;quot;&amp;quot;, $teststring); &lt;br /&gt;
$nongreedyresult = preg_replace(&amp;quot;/&amp;quot;.*?&amp;quot;/&amp;quot;, &amp;quot;&amp;quot;***&amp;quot;&amp;quot;, $teststring); &lt;br /&gt;
echo &amp;quot;Original: $teststring\n&amp;quot;; &lt;br /&gt;
echo &amp;quot;Greedy Replace: $greedyresult\n&amp;quot;; &lt;br /&gt;
echo &amp;quot;Nongreedy Replace: $nongreedyresult\n&amp;quot;; &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Match the smallest number of characters starting with &amp;quot;p&amp;quot; and ending with &amp;quot;t&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?&lt;br /&gt;
$text = &amp;quot;pot post pat patent&amp;quot;;&lt;br /&gt;
if ( preg_match( &amp;quot;/p.*?t/&amp;quot;, $text, $array ) ) {&lt;br /&gt;
  print &amp;quot;&amp;lt;pre&amp;gt;\n&amp;quot;;&lt;br /&gt;
  print_r( $array );&lt;br /&gt;
  print &amp;quot;&amp;lt;/pre&amp;gt;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Match URL==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  $hostRegex = &amp;quot;([a-z\d][-a-z\d]*[a-z\d]\.)*[a-z][-a-z\d]*[a-z]&amp;quot;;&lt;br /&gt;
  $portRegex = &amp;quot;(:\d{1,})?&amp;quot;;&lt;br /&gt;
  $pathRegex = &amp;quot;(\/[^\s?]+)?&amp;quot;;&lt;br /&gt;
  $queryRegex = &amp;quot;(\?[^&amp;lt;&amp;gt;#\&amp;quot;\s]+)?&amp;quot;;&lt;br /&gt;
  $urlRegex = &amp;quot;/(?:(?&amp;lt;=^)|(?&amp;lt;=\s))((ht|f)tps?:\/\/&amp;quot; . $hostRegex . $portRegex . $pathRegex . $queryRegex . &amp;quot;)/&amp;quot;;&lt;br /&gt;
  $str = &amp;quot;This is my homepage:  http://home.example.ru.&amp;quot;;&lt;br /&gt;
  $str2 = &amp;quot;This is my homepage:  http://home.example.ru:8181/index.php&amp;quot;;&lt;br /&gt;
  $sample1 = preg_replace($urlRegex, &amp;quot;&amp;lt;a href=\&amp;quot;\\1\&amp;quot;&amp;gt;\\1&amp;lt;/a&amp;gt;&amp;quot;, $str);&lt;br /&gt;
  $sample2 = preg_replace($urlRegex, &amp;quot;&amp;lt;a href=\&amp;quot;\\1\&amp;quot;&amp;gt;\\1&amp;lt;/a&amp;gt;&amp;quot;, $str2);&lt;br /&gt;
  echo $sample1 . &amp;quot;\n&amp;quot;;&lt;br /&gt;
  echo $sample2 . &amp;quot;\n&amp;quot;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Nongreedy Qualifiers==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Qualifier           What It Matches&lt;br /&gt;
*?                  The preceding expression can be found any number of times, but the matching will stop as soon as it can.&lt;br /&gt;
+*                  The preceding expression can be found one or more times, but the matching will stop as soon as it can.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Option patterns:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
(pattern) = Groups the pattern to act as one item and captures it&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    (x|y) = Matches either pattern x, or pattern y&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    [abc] = Matches either the character a, b, or c&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    [^abc] = Matches any character except a, b, or c&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    [a-f] = Matches characters a through f&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pattern matches:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
\d = Digit&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    \D = Not a digit&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    \s = Whitespace&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    \S = Not whitespace&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    . = Any character (except \n)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    ^ = Start of string&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    $ = End of string&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    \b = Word boundary&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pattern match extenders:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
? = Previous item is match 0 or 1 times.&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    * = Previous item is matched 0 or more times.&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    + = Previous item is matched 1 or more times.&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    {n} = Previous item is matched exactly n times.&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    {n,} = Previous item is matched at least n times.&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    {n,m} = Previous item is matched at least n and at most m times.&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    ? (after any of above) = Match as few as possible times.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Perl-Compatible Regular Expressions (PCRE)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
\w represents a &amp;quot;word&amp;quot; character and is equivalent to the expression [A-Za-z0-9].&lt;br /&gt;
    &lt;br /&gt;
    \W represents the opposite of \w and is equivalent to [^A-Za-z0-9].&lt;br /&gt;
    &lt;br /&gt;
    \s represents a whitespace character.&lt;br /&gt;
    &lt;br /&gt;
    \S represents a nonwhitespace character.&lt;br /&gt;
    &lt;br /&gt;
    \d represents a digit and is equivalent to [0-9].&lt;br /&gt;
    &lt;br /&gt;
    \D represents a nondigit character and is equivalent to [^0-9].&lt;br /&gt;
    &lt;br /&gt;
    \n represents a newline character.&lt;br /&gt;
    &lt;br /&gt;
    \r represents a return character.&lt;br /&gt;
    &lt;br /&gt;
    \t represents a tab character.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==POSIX Regular Expressions Character Classes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Expression            Meaning&lt;br /&gt;
[[:alpha:]]           A letter, such as A?Z or a?z&lt;br /&gt;
[[:digi:]]            A number 0?9&lt;br /&gt;
[[:space:]]           Whitespace, such as a tab or space character&lt;br /&gt;
4.60\&amp;lt; or \&amp;gt;          Word boundaries&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Predefined Character Ranges (Character Classes)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[:alpha:]] matches any string containing alphabetic characters aA through zZ.&lt;br /&gt;
[[:digit:]] matches any string containing numerical digits 0 through 9.&lt;br /&gt;
[[:alnum:]] matches any string containing alphanumeric characters aA through zZ and 0 through 9.&lt;br /&gt;
[[:space:]] matches any string containing a space.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qualifiers restrict the number of times the preceding expression may appear.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The common single-character qualifiers are ?, +, and *.&lt;br /&gt;
?  means &amp;quot;zero or one,&amp;quot; &lt;br /&gt;
+  means &amp;quot;one or more.&amp;quot; &lt;br /&gt;
*  means &amp;quot;zero or more.&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Quantifiers for Matching a Recurring Character==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Symbol         Description                                      Example&lt;br /&gt;
 &lt;br /&gt;
*              Zero or more instances                           a*&lt;br /&gt;
 &lt;br /&gt;
+              One or more instances                            a+&lt;br /&gt;
 &lt;br /&gt;
?              Zero or one instance                             a?&lt;br /&gt;
 &lt;br /&gt;
{n}            n instances                                      a{3}&lt;br /&gt;
 &lt;br /&gt;
{n,}           At least n instances                             a{3,}&lt;br /&gt;
 &lt;br /&gt;
{,n}           Up to n instances                                a{,2}&lt;br /&gt;
 &lt;br /&gt;
{n1, n2}       At least n1 instances, no more than n2 instances a{1,2}&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Quantifiers: +, *, ?, {int. range}, and $ follow a character sequence:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
p+ matches any string containing at least one p.&lt;br /&gt;
p* matches any string containing zero or more p&amp;quot;s.&lt;br /&gt;
p? matches any string containing zero or more p&amp;quot;s. This is just an alternative way to use p*.&lt;br /&gt;
p{2} matches any string containing a sequence of two p&amp;quot;s.&lt;br /&gt;
p{2,3} matches any string containing a sequence of two or three p&amp;quot;s.&lt;br /&gt;
p{2, } matches any string containing a sequence of at least two p&amp;quot;s.&lt;br /&gt;
p$ matches any string with p at the end of it.&lt;br /&gt;
^p matches any string with p at the beginning of it.&lt;br /&gt;
[^a?zA?Z] matches any string not containing any of the characters ranging from a through z and A through Z.&lt;br /&gt;
p.p matches any string containing p, followed by any character, in turn followed by another p.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ranges==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
{ specifies the beginning of a range. &lt;br /&gt;
} specifies the end of a range. &lt;br /&gt;
{n} specifies the preceding expression is found exactly n times. &lt;br /&gt;
{n,} specifies the preceding expression is found at least n times. &lt;br /&gt;
{n,m} specifies the preceding expression is found at least n but no more than m times.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Regular expressions using character classes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Function call                                         Result&lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[Ff]oo/&amp;quot;, &amp;quot;Foo&amp;quot;)                         True&lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[^Ff]oo/&amp;quot;, &amp;quot;Foo&amp;quot;)                        False; &lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[A-Z][0-9]/&amp;quot;, &amp;quot;K9&amp;quot;)                      True&lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[A-S]esting/&amp;quot;, &amp;quot;Testing&amp;quot;)                False; &lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[A-T]esting/&amp;quot;, &amp;quot;Testing&amp;quot;)                True; &lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[a-z]esting[0-9][0-9]/&amp;quot;, &amp;quot;TestingAA&amp;quot;)    False&lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[a-z]esting[0-9][0-9]/&amp;quot;, &amp;quot;testing99&amp;quot;)    True&lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[a-z]esting[0-9][0-9]/&amp;quot;, &amp;quot;Testing99&amp;quot;)    False; case sensitivity!&lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[a-z]esting[0-9][0-9]/i&amp;quot;, &amp;quot;Testing99&amp;quot;)   True; case problems fixed with /i&lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[^a-z]esting/&amp;quot;, &amp;quot;Testing&amp;quot;)               True; &lt;br /&gt;
 &lt;br /&gt;
preg_match(&amp;quot;/[^a-z]esting/i&amp;quot;, &amp;quot;Testing&amp;quot;)              False;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Special classes for regular expression==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
alpha represents a letter of the alphabet (either upper- or lowercase). This is equivalent to [A-Za-z].&lt;br /&gt;
    &lt;br /&gt;
    digit represents a digit between 09 (equivalent to [0-9]).&lt;br /&gt;
    &lt;br /&gt;
    alnum represents an alphanumeric character, just like [0-9A-Za-z].&lt;br /&gt;
    &lt;br /&gt;
    blank represents &amp;quot;blank&amp;quot; characters, normally space and Tab.&lt;br /&gt;
    &lt;br /&gt;
    cntrl represents &amp;quot;control&amp;quot; characters, such as DEL, INS, and so forth.&lt;br /&gt;
    &lt;br /&gt;
    graph represents all the printable characters except the space.&lt;br /&gt;
    &lt;br /&gt;
    lower represents lowercase letters of the alphabet only.&lt;br /&gt;
    &lt;br /&gt;
    upper represents uppercase letters of the alphabet only.&lt;br /&gt;
    &lt;br /&gt;
    print represents all printable characters.&lt;br /&gt;
    &lt;br /&gt;
    punct represents punctuation characters such as &amp;quot;.&amp;quot; or &amp;quot;,&amp;quot;.&lt;br /&gt;
    &lt;br /&gt;
    space is the whitespace.&lt;br /&gt;
    &lt;br /&gt;
    xdigit represents hexadecimal digits.&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Validating a credit card number==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function is_valid_credit_card($s) {&lt;br /&gt;
    $s = strrev(preg_replace(&amp;quot;/[^\d]/&amp;quot;,&amp;quot;&amp;quot;,$s));&lt;br /&gt;
    $sum = 0;&lt;br /&gt;
    for ($i = 0, $j = strlen($s); $i &amp;lt; $j; $i++) {&lt;br /&gt;
        if (($i % 2) == 0) {&lt;br /&gt;
            $val = $s[$i];&lt;br /&gt;
        } else {&lt;br /&gt;
            $val = $s[$i] * 2;&lt;br /&gt;
            if ($val &amp;gt; 9) { $val -= 9; }&lt;br /&gt;
        }&lt;br /&gt;
        $sum += $val;&lt;br /&gt;
    }&lt;br /&gt;
    return (($sum % 10) == 0);&lt;br /&gt;
}&lt;br /&gt;
if (! is_valid_credit_card($_POST[&amp;quot;credit_card&amp;quot;])) {&lt;br /&gt;
    print &amp;quot;Sorry, that card number is invalid.&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Validating Pascal Case Names==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  $values = array(&lt;br /&gt;
    &amp;quot;PascalCase&amp;quot;, // Valid&lt;br /&gt;
    &amp;quot;_notvalid&amp;quot;,  // Not Valid&lt;br /&gt;
    );&lt;br /&gt;
  foreach ($values as $value) {&lt;br /&gt;
    if(preg_match(&amp;quot;/^([A-Z][a-z]+)+$/&amp;quot;, $value)) {&lt;br /&gt;
      printf(&amp;quot;&amp;quot;%s&amp;quot; is a valid name.\n&amp;quot;, $value);  &lt;br /&gt;
    } else {&lt;br /&gt;
      printf(&amp;quot;&amp;quot;%s&amp;quot; is NOT a valid name.\n&amp;quot;, $value);  &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Validating U.S. Currency==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
$regex = &amp;quot;/^\\$?(\d{1,3}(,\d{3})*|\d+)\.\d\d$/&amp;quot;; &lt;br /&gt;
$values = array( &lt;br /&gt;
    &amp;quot;1,123.00&amp;quot;, &lt;br /&gt;
    &amp;quot;1123.00&amp;quot; &lt;br /&gt;
); &lt;br /&gt;
&lt;br /&gt;
foreach ($values as $value) { &lt;br /&gt;
    if (preg_match($regex, $value)) { &lt;br /&gt;
        echo &amp;quot;&amp;quot;&amp;quot; . $value . &amp;quot;&amp;quot; is a valid number.\n&amp;quot;; &lt;br /&gt;
    } else { &lt;br /&gt;
        echo &amp;quot;&amp;quot;&amp;quot; . $value . &amp;quot;&amp;quot; is NOT a valid number.\n&amp;quot;; &lt;br /&gt;
    } &lt;br /&gt;
} &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>