说明
int 
preg_match ( string pattern, string subject [, array matches [, int flags]])
     在 subject 字符串中搜索与
     pattern 给出的正则表达式相匹配的内容。
    
     如果提供了
     matches,则其会被搜索的结果所填充。$matches[0]
     将包含与整个模式匹配的文本,$matches[1]
     将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
    
     flags 可以是下列标记:
     
- PREG_OFFSET_CAPTURE
- 
         如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其偏移量。本标记自
         PHP 4.3.0 起可用。
         
 参数自
     
PHP 4.3.0 起可用。
    
     preg_match() 返回
     pattern 所匹配的次数。要么是
     0 次(没有匹配)或 1 次,因为 preg_match()
     在第一次匹配之后将停止搜索。preg_match_all()
     则相反,会一直搜索到 subject
     的结尾处。如果出错 preg_match() 返回 FALSE。
    
     
| 例子 1. 在文本中搜索“php” | 
<?php// 模式定界符后面的 "i" 表示不区分大小写字母的搜索
 if (preg_match ("/php/i", "PHP is the web scripting language of choice.")) {
 print "A match was found.";
 } else {
 print "A match was not found.";
 }
 ?>
 | 
 | 
    
     
| 例子 2. 搜索单词“web” | 
<?php/* 模式中的 \b 表示单词的边界,因此只有独立的 "web" 单词会被匹配,
 * 而不会匹配例如 "webbing" 或 "cobweb" 中的一部分 */
 if (preg_match ("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
 print "A match was found.";
 } else {
 print "A match was not found.";
 }
 
 if (preg_match ("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
 print "A match was found.";
 } else {
 print "A match was not found.";
 }
 ?>
 | 
 | 
    
     
| 例子 3. 从 URL 中取出域名 | 
<?php// 从 URL 中取得主机名
 preg_match("/^(http:\/\/)?([^\/]+)/i",
 "http://www.php.net/index.html", $matches);
 $host = $matches[2];
 
 // 从主机名中取得后面两段
 preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
 echo "domain name is: {$matches[0]}\n";
 ?>
 | 
 
       本例将输出:
       | 
    
     参见 preg_match_all(),preg_replace()
     和 preg_split()。