现在的位置: 首页学习笔记>正文
PHP正则表达式量词
发表于6年前 学习笔记 评论数 1

我们在网站验证邮件注册的时候,

需要注册邮件地址,在这里我用以前学的字符串处理,就很难了.

所以需要学习新的东西,正则表达式.

 

模式规则:/php/ 在字符串前后加上两天斜杠即可.

匹配函数:preg_match()函数在字符串中搜索模式,如果存在则返回ture,否则返回false

如:

  1. <?php   
  2.   
  3.  echo preg_match('/独家记忆/','独家记忆');     
  4.   
  5. ?>  

返回的是一个布尔值.

相等就是真1,不相等就是假返回空或者0;

正则表达式

 

  1. <?php   
  2.   
  3. //现在先详细了解这个基本概念.   
  4.   
  5.   
  6. $a='/php/';   
  7. $b='php';   
  8. //我用个循环   
  9. if(preg_match($a,$b))   
  10. {   
  11.     echo '匹配';   
  12. }   
  13. else    
  14. {   
  15.     echo '不匹配';   
  16. }   
  17.   
  18.   
  19.   
  20. //这是基本的这样肯定是匹配的现在我们来看看在我们字符串后面再加些东西   
  21.   
  22. $c='/php/';   
  23. $d='asdsadsadphpasdasdasdasdasdasd';   
  24. //我用个循环   
  25. if(preg_match($c,$d))   
  26. {   
  27.     echo '匹配';   
  28. }   
  29. else    
  30. {   
  31.     echo '不匹配';   
  32. }   
  33.   
  34. //我们在字符串前面或者后面乱加,都是可以的,只要不是中间.   
  35.   
  36.   
  37. //什么叫匹配,就是一个一个的比较过去   
  38.   
  39. //按照什么规则??按照模式来匹配   
  40. //只要模式全部通过,那么就通过   
  41.        
  42. //匹配和相等是两个概念   
  43.   
  44. //因为目前的模式是一个整体,php   
  45. //所以,字符串只要有连在一起的php三个字符,不管怎样的字符串都能匹配   
  46.   
  47.   
  48.   
  49. //OK,基本概念懂了,我们来详细学习正则表达式的元素   
  50. //在规则加上 + 匹配前导至少一个字符串 (就是字符串前面一个字符).   
  51.   
  52.   
  53. $e='/ph+p/';   
  54. $f='php';//$f='phhhhhhp'; 这个是会显示匹配成功/但是$f='pp';就是失败了;   
  55.   
  56. if(preg_match($e,$f))   
  57. {   
  58.     echo '匹配';   
  59. }   
  60. else    
  61. {   
  62.     echo '不匹配';   
  63. }   
  64. //这个结果肯定是匹配   
  65.   
  66.   
  67.   
  68.   
  69.   
  70. //继续   
  71. //* 匹配零个或者多个前导函数.   
  72. //也列个例子出来比较好.   
  73.   
  74. echo '<br />';   
  75. $h='/ph*p/';   
  76. $l='php';//这里$l='pp'显示也是匹配的,$l='phhhhhhhhhhhhhp'显示也是匹配的.   
  77. //注意点是这个是'区分'大小写的.   
  78.   
  79. if(preg_match($h,$l))   
  80. {   
  81.     echo '匹配';   
  82. }   
  83. else    
  84. {   
  85.     echo '不匹配';   
  86. }   
  87. //默认这个也是匹配的.   
  88.   
  89.   
  90. //? 这个是匹配任何零个或一个前导字符串   
  91. //和前面那个区别就是一个是多个,一个是至少一个.   
  92. echo '<br />';   
  93. $y='/ph?p/';   
  94. $w='php';//$w='phhp'就会显示不匹配了,$w='pp'还是会显示匹配   
  95.   
  96. if(preg_match($y,$w))   
  97. {   
  98.     echo '匹配';   
  99. }   
  100. else    
  101. {   
  102.     echo '不匹配';   
  103. }   
  104.   
  105. //.匹配任何字符串   
  106. //加两个..就代表两个字符. 当然是加在中间,加在外面,还是没用的.   
  107. echo '<br />';   
  108. $t='/ph.p/';   
  109. $u='php';//$u='phxp'这个就是匹配的,$u='phxppppppppppp'这个也是匹配的   
  110.   
  111. if(preg_match($t,$u))   
  112. {   
  113.     echo '匹配';   
  114. }   
  115. else    
  116. {   
  117.     echo '不匹配';   
  118. }   
  119.   
  120. //这个默认的就会不匹配了,因为我们规则定的是4个字符...   
  121.   
  122.   
  123.   
  124.   
  125. //{x}包含X个前导字符串   
  126.   
  127. echo '<br />';   
  128. $z='/ph{4}p/';   
  129. $x='php';//$x='phhhhp';$x='phhhhppppp'这两个都是匹配的.   
  130.   
  131. if(preg_match($z,$x))   
  132. {   
  133.     echo '匹配';   
  134. }   
  135. else    
  136. {   
  137.     echo '不匹配';   
  138. }   
  139.   
  140. //这个当然也是不匹配的.   
  141.   
  142.   
  143.   
  144.   
  145. //{x,y}这个是匹配任何包含X到Y的前导字符串.   
  146. echo '<br />';   
  147. $n='/ph{3,5}p/';   
  148. $m='php';//$m='phhhp';$m='phhhhhpppp' 这些就都是匹配的.   
  149.   
  150. if(preg_match($n,$m))   
  151. {   
  152.     echo '匹配';   
  153. }   
  154. else    
  155. {   
  156.     echo '不匹配';   
  157. }   
  158.   
  159. //这个也是不匹配的,   
  160.   
  161.   
  162. //{x,}这个是至少有X个前导字符串.   
  163. echo '<br />';   
  164. $i='/ph{2,}p/';   
  165. $o='php';//$o='phhp'或$o='phhphHHHUI'或o='sadasdasdphhphHHHUI'都是匹配的了.   
  166.   
  167. if(preg_match($i,$o))   
  168. {   
  169.     echo '匹配';   
  170. }   
  171. else    
  172. {   
  173.     echo '不匹配';   
  174. }   
  175. //这个默认还是不匹配的.   
  176.   
  177.   
  178.   
  179. //^这个匹配字符串的首行,就是必须从开始匹配   
  180.   
  181.   
  182. echo '<br />';   
  183. $aa='/^php/';   
  184. $bb='phpdasdsa';//$   
  185.   
  186. if(preg_match($aa,$bb))   
  187. {   
  188.     echo '匹配';   
  189. }   
  190. else    
  191. {   
  192.     echo '不匹配';   
  193.   
  194. }   
  195. //这个就是匹配的.要是$bb='aphp'就不会匹配了   
  196.   
  197. //$这个和上面的相反是尾行.这个就不举例了.   
  198.   
  199. echo '<br />';   
  200. $qq='/php|asp|jsp/';   
  201. $xx='php';   
  202.   
  203. if(preg_match($qq,$xx))   
  204. {   
  205.     echo '匹配';   
  206. }   
  207. else    
  208. {   
  209.     echo '不匹配';   
  210.   
  211. }   
  212.   
  213. //这个就是或者关系 只要是选择隔开的就都可以匹配。   
  214.   
  215. //OK,量词我也学的差不多了   
  216. ?>  

 

×
腾讯微博