正規表示式(regular expression)描述了一個字串匹配的模式,可以用來檢查一個字串是否含有某種子字串、將匹配的子字串做替換或從某個字串中取出符合某個條件的子串等。
列目錄時, dir *.txt或ls *.txt中的*.txt就不是一個正規表示式,因為這裡*與正規式的*的含義是不同的。
構造正規表示式的方法和創建數學表達式的方法一樣。也就是用多種元字元與運算子可以將小的表達式結合在一起來創造更大的表達式。正規表示式的元件可以是單一的字元、字元集合、字元範圍、字元間的選擇或所有這些元件的任意組合。
正規表示式是由普通字元(例如字元 a 到 z)以及特殊字元(稱為"元字元")組成的文字模式。模式描述在搜尋文字時要匹配的一個或多個字串。正規表示式作為一個模板,將某個字元模式與所搜尋的字串進行比對。
下面是小編日常整理了工作中常用的一些正規表示式,常用的正規驗證表達式:
數字相關的正規表示式
數字:^[0-9]*$
n位定長的數字:^d{n}$
m-n位之間的數字:^d{m,n}$
零和非零開頭的數字:^(0|[1-9][ 0-9]*)$
非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(.[0-9]{1,2}) ?$
帶1-2位小數的正數或負數:^(-)?d+(.d{1,2})?$
正數、負數、和小數:^(-|+ )?d+(.d+)?$
有兩小數的正實數:^[0-9]+(.[0-9]{2})?$
有1~3位小數的正實數:^[0-9]+(.[0-9]{1,3})?$
正整數:^d+$ 或^[1-9]d*|0$
負整數:^-[1-9]d*|0$ 或^((-d+)|(0+))$
正浮點數:^[1-9]d*.d*|0.d *[1-9]d*$ 或^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9 ][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$
負浮點數:^-([1- 9]d*.d*|0.d*[1-9]d*)$ 或^(-(([0-9]+.[0-9]*[1-9][0-9] *)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)) )$
浮點數:^(-?d+)(.d+)?$ 或^-?([1-9]d*.d*|0.d*[1-9]d*|0? .0+|0)$
字元相關的正規表示式
漢字:^[u4e00-u9fa5]{0,}$
長度為3-20的所有字元:^.{3,20}$
由數字和26個英文字母組成的字串:^[A-Za-z0-9]+$
由數字、26個英文字母或下劃線組成的字串:^w+$ 或^w {3,20}$
中文、英文、數字包含底線:^[u4E00-u9FA5A-Za-z0-9_]+$
中文、英文、數字但不含底線等符號:^[u4E00- u9FA5A-Za-z0-9]+$ 或^[u4E00-u9FA5A-Za-z0-9]{2,20}$
帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和底線):^[a-zA-Z]w{5,17}$
強密碼(必須包含大小寫字母和數字的組合,不能使用特殊字符,長度在8-10之間):^(? =.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
固定格式約定俗成的正規表示式
Email位址:^w+([-+ .]w+)*@w+([-.]w+)*.w+([-.]w+)*$
網站網域:[a-zA-Z0-9][-a-zA-Z0-9 ]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
URL網址:^http://( [w-]+.)+[w-]+(/[w-./?%&=]*)?$
手機號碼:^(13[0-9]|17[0-9] |14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9]) d{8}$
電話號碼(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^((d{3, 4}-)|d{3.4}-)?d{7,8}$
國內電話號碼(0511-4405222、021-87888822):d{3}-d{8}|d{4}- d{7}
身分證號(15位、18位數字):^d{15}|d{18}$
日期格式:^d{4}-d{1,2}-d {1,2}
一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$
一個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
騰訊QQ號:[1- 9][0-9]{4,8} (騰訊QQ號從10000開始,目前最長為10位)
中國郵遞區號:[1-9]d{5}(?!d) (中國郵遞區號為6位數字)
IP位址:d+.d+.d+.d+ (提取IP位址時有用)
IP位址:((?:(?:25[0-5]|2[0 -4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d ))
以上所述是小編給大家介紹的常用的正規表示式大全(數字、字元、固定格式),希望對大家有幫助!
更多常用的正規表示式大全(數字、字元、固定格式)相關文章請關注PHP中文網!