1. <?php 
  2.     /* 
  3.     *1、正则表达式iushi描述字符串排列模式的一种自定义语法规则 
  4.     *2、如果可以使用字符串处理函数完成的任务,就不要使用正则 
  5.     *3、一些复杂的操作,只能使用正则完成 
  6.     *4、正则表达式也成为一种模式表达式 
  7.     *5、正则表达式是通过特定规则的模式,与输入的字符信息比较,在进行分割、匹配查找、替换工作 
  8.     */ 
  9.      
  10.     /* 
  11.     语法: 
  12.         1、定界符 
  13.             //除了字母、数字、正斜线\外都可以作为定界符  
  14.         2、原子 
  15.             *原子是正则表达式的最基本组成单元,至少包含一个,只要一个正则表达式可以单独使用的字符,就是原子 
  16.              
  17.             *所有打印和非打印字符 
  18.             *代表范围的原子 
  19.                 \d:表达任何数字 
  20.                 \D:表示任何除数字外的字符 
  21.                 \s:表示任意一个空白字符    
  22.                 \S:表示任意非空白字符 
  23.                 \w:匹配a-zA-Z0-9_ 
  24.                 \W:和\w匹配相反 
  25.  
  26.             *自己定义 
  27.                 []:匹配方括号中任何一个原子 
  28.                 [1-9a-z]:范围 
  29.                 [^1-9]:取反,^必须在方括号内的第一个字符 
  30.             *. 
  31.         3、元字符 
  32.             元字符是修饰原子的特殊字符,不可独立使用 
  33.             * 表示其前面的原子可以出现任意次 
  34.             + 表示其前面原子至少出现1次 
  35.             ? 表示0次或者1次 
  36.             {} 自定义出现的次数  
  37.                 {m} m为整数 
  38.                 {m,n} 大等于m次和小等于n次 
  39.                 {m,} 
  40.             . 默认情况为换行符之外的其他字符 
  41.             ^ 直接作为第一个字符使用,为开头 
  42.             $ 最后使用为结束符 
  43.             | 或的关系,匹配左右,优先级别最低,最后匹配 
  44.             \b  表示一个边界 
  45.             \B  表示非边界 
  46.             ()  重点; 
  47.                 一、作为大原子使用 
  48.                 二、改变优先级 
  49.                 三、作为子模式使用 
  50.                 四、可以取消子模式,就作为其他用处(?: ) 
  51.                 五、反向引用  可以将子模式直接取出来,作为正则表达式模式的一部分   preg_replace中 
  52.          
  53.             优先级: 
  54.                 \ 
  55.                 () (?:) [] 
  56.                 * + ? {} 
  57.                 ^ & \b 
  58.                 | 
  59.         4、模式修正符号 
  60.             //模式修正符 
  61.             就是几个字母 
  62.             可以同时使用 
  63.             是对正则表达式调优用的 
  64.             i:不区分大小写 
  65.             m:将字符串视为一行 ^ $视为多行均可 
  66.             s:将字符串视为单行,主要是针对. 
  67.             x:忽略空白 
  68.             e: 
  69.             U:匹配第一个 
  70.      
  71.         /原子和元字符/模式修正符 
  72.     处理函数: 
  73.         preg_match() 
  74.     */ 
  75.  
  76.     $pattern = "/((a)b{2,}c)/"
  77.     $str = "aaaabbbbccc"
  78.     if(preg_match($pattern,$str,$arr)){ 
  79.         echo "正则表达式$pattern 匹配成功!"
  80.     }else
  81.         echo "<font color='#FF000000'>正则表达式$pattern 匹配失败!</font>"
  82.     } 
  83.     print_r($arr); 
  84.      
  85. ?>