程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 常見的正則匹配表達式學習筆記

php 常見的正則匹配表達式學習筆記

編輯:關於PHP編程

在php中常用的正則表達式包括了如電話號,郵箱,用戶名,手機號,郵箱,密碼,QQ號,身份證號碼,空格,字母,數字等等這些正則表達試代碼,下面我來整理一下。

參考N+1個正則總結:

常見的正則匹配:

 代碼如下 復制代碼 ((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}[X0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))

匹配騰訊QQ號:[1-9][0-9]{4,}注:騰訊QQ號從10000開始
價格:/(^[-+]?[1-9]d*(.d{1,2})?$)|(^[-+]?[0]{1}(.d{1,2})?$)/
驗證用戶密碼:"^[a-zA-Z]w{5,17}$"正確格式為:以字母開頭,長度在6~18之間,只能包含字符、數字和下劃線。
中國郵政編碼:[1-9]{1}(d+){5}
中國手機號碼:(86)*0*13d{9}

掩碼:

 代碼如下 復制代碼

/^(254|252|248|240|224|192|128|0).0.0.0$|^(255.(254|252|248|240|224|192|128|0).0.0)$|^(255.255.(254|252|248|240|224|192|128|0).0)$|^(255.255.255.(254|252|248|240|224|192|128|0|255))$/

中國電話號碼(包括移動和固定電話):((d{3,4})|d{3,4}-|s)?d{7,14}
正則表達式 "((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*"(匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222)

中國身份證號碼:

 代碼如下 復制代碼

((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}[X0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))

匹配空格/空行:

匹配空行的正則表達式:n[s| ]*r
匹配首尾空格的正則表達式:(^s*)|(s*$)
匹配中文字符的正則表達式: [u4e00-u9fa5]

匹配數字:

只能輸入數字:"^[0-9]*$"
整數或者小數:^[0-9]+.{0,1}[0-9]{0,2}$
只能輸入至少n位的數字:"^d{n,}$"。
只能輸入m~n位的數字:。"^d{m,n}$"
只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"
只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"
只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"
只能輸入非零的正整數:"^+?[1-9][0-9]*$"
只能輸入非零的負整數:"^-[1-9][]0-9"*$
只能輸入長度為3的字符:"^.{3}$"


匹配字母:
只能輸入由26個英文字母組成的字符串:"^[A-Za-z]+$"
只能輸入由26個大寫英文字母組成的字符串:"^[A-Z]+$"
只能輸入由26個小寫英文字母組成的字符串:"^[a-z]+$"
只能輸入由數字和26個英文字母組成的字符串:"^[A-Za-z0-9]+$"
只能輸入由數字、26個英文字母或者下劃線組成的字符串:"^w+$"
驗證是否含有^%&',;=?$"等字符:"[^%&',;=?$x22]+"

下面附一些自己的正則表達式應用

 代碼如下 復制代碼  function pregTP($test){
  /**
  電話號碼匹配
  電話號碼規則:
   區號:3到5位,大部分都是四位,北京(010)和上海市(021)三位,西藏有部分五位,可以包裹在括號內也可以沒有
   如果有區號由括號包裹,則在區號和號碼之間可以有0到1個空格,如果區號沒有由括號包裹,則區號和號碼之間可以有兩位長度的 或者-
   號碼:7到8位的數字
   例如:(010) 12345678  或者 (010)12345678 或者 010  12345678 或者 010--12345678
  */
  $rule = '/^((((010)|(021)|(0d{3,4})))( ?)([0-9]{7,8}))|((010|021|0d{3,4}))([- ]{1,2})([0-9]{7,8})$/A';
  preg_match($rule,$test,$result);
  return $result;
 }

 

 

 代碼如下 復制代碼 function pregURL($test){
  /**
   匹配url
   url規則:
    例
    協議://域名(www/tieba/baike...).名稱.後綴/文件路徑/文件名
    http://www.bKjia.c0m
    協議://域名(www/tieba/baike...).名稱.後綴/文件路徑/文件名?參數
    www.www.bKjia.c0m
    協議://域名(www/tieba/baike...).名稱.後綴/文件路徑/文件名/參數
    http://www.hzhuti.com
    
    協議:可有可無,由大小寫字母組成;不寫協議則不應存在://,否則必須存在://
    域名:必須存在,由大小寫字母組成
    名稱:必須存在,字母數字漢字
    後綴:必須存在,大小寫字母和.組成
    文件路徑:可有可無,由大小寫字母和數字組成
    文件名:可有可無,由大小寫字母和數字組成
    參數:可有可無,存在則必須由?開頭,即存在?開頭就必須有相應的參數信息
  */
  $rule = '/^(([a-zA-Z]+)(://))?([a-zA-Z]+).(w+).([w.]+)(/([w]+)/?)*(/[a-zA-Z0-9]+.(w+))*(/([w]+)/?)*(?(w+=?[w]*))*((&?w+=?[w]*))*$/';
  preg_match($rule,$test,$result);
  return $result;
 }

 

 代碼如下 復制代碼 function pregPOS($test){
 /**
  匹配郵編
   規則:六位數字,第一位不能為0
 */
  $rule ='/^[1-9]d{5}$/';
  preg_match($rule,$test,$result);
  return $result;
 }

 

 代碼如下 復制代碼  function pregCh($test){
 //utf8下匹配中文
  $rule ='/([x{4e00}-x{9fa5}]){1}/u';
  preg_match_all($rule,$test,$result);
  return $result;
 }  代碼如下 復制代碼

function pregTI($test){
  /**
  匹配時間
   規則:
    形式可以為:
    年-月-日 小時:分鐘:秒
    年-月-日 小時:分鐘
    年-月-日
    年:1或2開頭的四位數
    月:1位1到9的數;0或1開頭的兩位數,0開頭的時候個位數是1到9的數,1開頭的時候個位數是1到2的數
    日:1位1到9的數;0或1或2或3開頭的兩位數,0開頭的時候個位數是1到9的數,1或2開頭的時候個位數是0到9的數,3開頭的時候個位數是0或1
    小時:0到9的一位數;0或1開頭的兩位數,個位是0到9;2開頭的兩位數,個位是0-3
    分鐘:0到9的一位數;0到5開頭的兩位數,個位是0到9;
    分鐘:0到9的一位數;0到5開頭的兩位數,各位是0到9
  */
  $rule ='/^(([1-2][0-9]{3}-)((([1-9])|(0[1-9])|(1[0-2]))-)((([1-9])|(0[1-9])|([1-2][0-9])|(3[0-1]))))( ((([0-9])|(([0-1][0-9])|(2[0-3]))):(([0-9])|([0-5][0-9]))(:(([0-9])|([0-5][0-9])))?))?$/';
  preg_match($rule,$test,$result);
  return $result;
 }

 

 代碼如下 復制代碼 function pregIP($test){
  /**
  匹配ip
  規則:
   **1.**2.**3.**4
   **1可以是一位的 1-9,兩位的01-99,三位的001-255
   **2和**3可以是一位的0-9,兩位的00-99,三位的000-255
   **4可以是一位的 1-9,兩位的01-99,三位的001-255
   四個參數必須存在
  */
  $rule = '/^((([1-9])|((0[1-9])|([1-9][0-9]))|((00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))).)((([0-9]{1,2})|(([0-1][0-9]{2})|(2[0-4][0-9])|(25[0-5]))).){2}(([1-9])|((0[1-9])|([1-9][0-9]))|(00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))$/';
  preg_match($rule,$test,$result);
  return $result;
 }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved