Linux系統程式設計(18)——正規表示式實用舉例
匹配特定字串:
只能輸入長度為3的字元:"^.{3}$"。
只能輸入由26個英文字母組成的字串:"^[A-Za-z]+$"。
只能輸入由26個大寫英文字母組成的字串:"^[A-Z]+$"。
只能輸入由26個小寫英文字母組成的字串:"^[a-z]+$"。
只能輸入由數字和26個英文字母組成的字串:"^[A-Za-z0-9]+$"。
只能輸入由數字、26個英文字母或者下劃線組成的字串:"^\w+$"。
正規表示式匹配身份證號碼
身份證為15位或者18位,15位的全為數字,18位的前17位為數字,最後一位為數字或者大寫字母”X“。
與之匹配的正規表示式:(^\d{15}$)|(^\d{17}([0-9]|X)$)
正規表示式匹配電子郵箱或者電子郵件地址
正則匹配表示式:/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i
國際域名格式如下:域名由各國文字的特定字符集、英文字母、數字及“-”(即連字元或減號)任意組合而成, 但開頭及結尾均不能含有“-”,“-”不能連續出現。 域名中字母不分大小寫。域名最長可達60個位元組(包括字尾.com、.net、.org等)。
說明:
①/內容/i 構成一個不區分大小寫的正規表示式;^ 匹配開始;$ 匹配結束。
②[a-z] E-Mail字首必需是一個英文字母開頭
③([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字元,也是匹配的,*表示0個或者多個。
④*表示0個或多個前面的字元.
⑤[a-z0-9]* 匹配0個或多個英文字母或者數字;[-_]? 匹配0個或1“-”,因為“-”不能連續出現。
⑥[a-z0-9]+ 匹配1個或多個英文字母或者數字,因為“-”不能做為結尾
⑦@ 必需有個有@
⑧([a-z0-9]*[-_]?[a-z0-9]+)+ 見上面([a-z0-9]*[-_]?[a-z0-9]+)*解釋,但是不能為空,+表示一個或者為多個。
⑨[\.] 將特殊字元(.)當成普通字元;[a-z]{2,3} 匹配2個至3個英文字母,一般為com或者net等。
⑩([\.][a-z]{2})? 匹配0個或者1個[\.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最後部份是不是都是兩位的,如果不是請修改{2}為{起始字數,結束字數}
正規表示式匹配電話號碼和手機號碼
正規表示式 \d{3}-\d{8}|\d{4}-\d{7}
匹配 0511-4405222 |021-87888822
不匹配 02-552255 12345-784787
正規表示式 (^\([0]\d{2}|\d{4}\))(\d{6,7}$)
匹配 (021)1234567 |(0411)123456 | (000)000000
不匹配 (123)1234567 | 025123456 |0252345678
正規表示式匹配使用者密碼
密碼形式可以根據開發需求自己設定,下面是匹配密碼的例子:
正規表示式 ^[a-zA-Z]\w{5,17}$
匹配 以字母開頭,長度在6~18之間,只能包含字元、數字和下劃線
正規表示式匹配日期時間
正規表示式 ^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$
匹配 12:15 | 10:26:59 |22:01:15
不匹配 24:10:25 | 13:2:60
正規表示式 ^([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0]?[1-9]|[1][0-2])[./-]([0-9]{4}|[0-9]{2})$
匹配 10/03/1979 | 1-1-02 |01.1.2003
不匹配 10/03/197 | 09--02--2004 |01 02 03
正規表示式 ^([2-9]\d{3}((0[1-9]|1[012])(0[1-9]|1\d|2[0-8])|(0[13456789]|1[012])(29|30)|(0[13578]|1[02])31)|(([2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00))0229)$
匹配 20000101 | 20051231 |20040229
不匹配 19990101 | 20053112 |20050229
正規表示式 ^([1-9]|1[0-2]|0[1-9]){1}(:[0-5][0-9][aApP][mM]){1}$
匹配 08:00AM | 10:00am |7:00pm
不匹配 13:00pm | 12:65am
正規表示式匹配IP地址
正規表示式 ^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$
匹配 127.0.0.1 |255.255.255.0 | 192.168.0.1
不匹配 1200.5.4.3 | abc.def.ghi.jkl| 255.foo.bar.1
正規表示式 ^((0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})\.){3}(0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})(?(\/)\/([0-9]|[1-2][0-9]|3[0-2])|)$
匹配 192.168.0.1 |192.168.0.1/32 | 255.255.0.0/1
不匹配 010.0.0.0 | 192.168.0.1/33| 256.0.1.55
正規表示式 ^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}$
匹配 97.67.44.20 |199.154.37.214 | 127.0.0.1
不匹配 63.125.94.287 |140.370.a.187 | 94.923.1
正規表示式 /^(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\/(\d{1}|[0-2]{1}\d{1}|3[0-2])$/
匹配 192.168.100.1/24 |0.0.0.0/0
不匹配 192.168.100.1/33 |0.0.0.0/90
正規表示式匹配漢字或中文
正則匹配中文漢字根據頁面編碼不同而略有區別:
GBK/GB2312編碼:[x80-xff>]+ 或 [xa1-xff]+
UTF-8編碼:[x{4e00}-x{9fa5}]+/u
相關文章
- java 正規表示式 舉例Java
- Linux系統程式設計(16)——正規表示式入門Linux程式設計
- Linux系統程式設計(17)——正規表示式進階Linux程式設計
- 正規表示式理解及簡單應用舉例
- MongoDB正規表示式匹配使用方法舉例MongoDB
- Linux系統程式設計(19)——正規表示式在sed和awk中的使用Linux程式設計
- Qt Creator程式設計之正規表示式QT程式設計
- shell程式設計(四)| grep正規表示式程式設計
- shell程式設計(四)| sed 正規表示式程式設計
- 05 shell程式設計之正規表示式程式設計
- 正規表示式子表示式程式碼例項
- .NET下正規表示式應用四例
- 正規表示式例項蒐集,通過例項來學習正規表示式。
- 20個實用正規表示式
- 匹配中文正規表示式程式碼例項
- java正規表示式例項Java
- 【Linux】正規表示式Linux
- 系統認識JavaScript正規表示式JavaScript
- vim的正規表示式(二)應用例項
- 驗證正整數正規表示式程式碼例項
- 解析url地址正規表示式程式碼例項
- 正規表示式獲取cookie程式碼例項Cookie
- javascript常用的正規表示式程式碼例項JavaScript
- 正規表示式刪除空格程式碼例項
- 正規表示式匹配空行程式碼例項行程
- Java 正規表示式例項操作Java
- js正規表示式例項(整理)JS
- Linux 的正規表示式Linux
- linux grep 正規表示式Linux
- 通過js正規表示式例項學習正規表示式基本語法JS
- 理解正規表示式(程式設計師第3期文章)程式設計師
- 【Perl程式設計-6】正規表示式--替換+轉化程式設計
- QTP的描述性程式設計與正規表示式QT程式設計
- 匹配漢字的正規表示式程式碼例項
- 驗證小數正規表示式程式碼例項
- 郵箱驗證正規表示式例項程式碼
- 驗證ip地址正規表示式程式碼例項
- 匹配<a>連結的正規表示式程式碼例項