PHP的正則匹配小結

                      
 PCRE模式是PHP的正則匹配規則。
 須要由分隔符閉合包裹(分隔符能夠是任意非字母數字,非反斜線,非空白字符)這意味着例如preg_macth("[\w{2,3}]",$subject)這種類型的正則匹配也是能夠的。固然常見的仍是/\w{2,3}/這種,當裏面須要轉義的反斜線太多的時候,能夠考慮用其餘類型的分隔符進行閉合包裹。
 例如:/http:\/\// 能夠寫成@http ://@ 這種 也能夠匹配到http://開頭的。分隔符結束後,能夠增長模式修飾符(模式修飾符實際上是匹配功能的加強好比設置了i就會對大小寫不敏感  m是進行多行匹配 s點號不匹配換行符號)
  基礎正則使用小結:(最經常使用看到的匹配)
  \   反斜線轉義的時候使用,匹配反斜線須要\\
  [abc] {2,5} 匹配abc中任何一個字母組成的2-5長度的字符串
  {^123$}m  匹配123開頭結尾的行
三個字符串的等價使用:
*  = {0,}
+ ={1,}
? ={0,1}
   下面是preg_replace($pattern,$replace,$subject)的匹配進行例子講解(實際中的正則匹配比語法複雜的多)         
1.正則匹配的分組調用
php

<?php
$string = 'April 15, 2003';
//對正則進行三重匹配 \w+的匹配\d+的匹配,\d+的匹配
$pattern = '/(\w+) (\d+), (\d+)/i';
//對匹配到的三個參數進行提取運用其中$1 $2  $3 分別表明對應三個變量
$replacement = '${1}10,$3';
//提取第一個和第三個匹配結果放到字符串裏面 進行替換
echo preg_replace($pattern, $replacement, $string);
?>

2.移除多餘的空格正則匹配  \s表明匹配一個空格字符\s+表明匹配一個空格字符串+
$str = preg_replace('/\s\s+/', ' ', $str);
3.匹配的分組使用(能夠把各類可能匹配到的正則填入正則數組,用後一個進行替換選擇)
 preg_replace(array('/\d/', '/\s/'), '*', $str);
 4.?: 不匹配某個符號的用法 匹配到某個字符串結束
 preg_replace("/(?:<)(.*)(?:>)/i",$str, $result);
 匹配<>內的內容  同時用$str替換掉
 aaa<bbb>cdc  匹配到的是bbb


數組

相關文章
相關標籤/搜索