正則表達(dá)式由一些符號(hào)和字符組成,達(dá)到我們?cè)谇岸溯斎氲臅r(shí)候做到一些驗(yàn)證
基本語法如下:
第一:兩個(gè)特殊的符號(hào)'^'和$
。他們的作用是分別指出一個(gè)字符串的開始和結(jié)束全闷。例子如下:
"^The":表示所有以"The"開始的字符串("There"漂问,"The cat"等);
"of despair$":表示所有以"of despair"結(jié)尾的字符串震糖;
"^abc$":表示開始和結(jié)尾都是"abc"的字符串——呵呵录肯,只有"abc"自己了;
第二:還有'*'吊说,'+'和'?'這三個(gè)符號(hào)论咏,表示一個(gè)或一序列字符重復(fù)出現(xiàn)的次數(shù)。它們分別表示“沒有或
更多”颁井,“一次或更多”還有“沒有或一次”厅贪。下面是幾個(gè)例子:
"ab*":表示一個(gè)字符串有一個(gè)a后面跟著零個(gè)或若干個(gè)b。("a", "ab", "abbb",……)雅宾;
"ab+":表示一個(gè)字符串有一個(gè)a后面跟著至少一個(gè)b或者更多养涮;
"ab?":表示一個(gè)字符串有一個(gè)a后面跟著零個(gè)或者一個(gè)b;
"a?b+$":表示在字符串的末尾有零個(gè)或一個(gè)a跟著一個(gè)或幾個(gè)b眉抬。
第三:可以使用范圍贯吓,用大括號(hào)括起,用以表示重復(fù)次數(shù)的范圍蜀变。
"ab{2}":表示一個(gè)字符串有一個(gè)a跟著2個(gè)b("abb")悄谐;
"ab{2,}":表示一個(gè)字符串有一個(gè)a跟著至少2個(gè)b;
"ab{3,5}":表示一個(gè)字符串有一個(gè)a跟著3到5個(gè)b库北。
還有一個(gè)'|'尊沸,表示“或”操作:
"hi|hello":表示一個(gè)字符串里有"hi"或者"hello";
"(b|cd)ef":表示"bef"或"cdef"贤惯;
"(a|b)*c":表示一串"a""b"混合的字符串后面跟一個(gè)"c"洼专;
'.'可以替代任何字符:
"a.[0-9]":表示一個(gè)字符串有一個(gè)"a"后面跟著一個(gè)任意字符和一個(gè)數(shù)字;
"^.{3}$":表示有任意三個(gè)字符的字符串(長度為3個(gè)字符)孵构;
第四:方括號(hào)表示某些字符允許在一個(gè)字符串中的某一特定位置出現(xiàn):
"[ab]":表示一個(gè)字符串有一個(gè)"a"或"b"(相當(dāng)于"a|b")屁商;
"[a-d]":表示一個(gè)字符串包含小寫的'a'到'd'中的一個(gè)(相當(dāng)于"a|b|c|d"或者"[abcd]");
"^[a-zA-Z]":表示一個(gè)以字母開頭的字符串颈墅;
"[0-9]%":表示一個(gè)百分號(hào)前有一位的數(shù)字蜡镶;
",[a-zA-Z0-9]$":表示一個(gè)字符串以一個(gè)逗號(hào)后面跟著一個(gè)字母或數(shù)字結(jié)束。
你也可以在方括號(hào)里用'^'表示不希望出現(xiàn)的字符恤筛,'^'應(yīng)在方括號(hào)里的第一位官还。(如:"%[^a-zA-Z]%"表
示兩個(gè)百分號(hào)中不應(yīng)該出現(xiàn)字母)。
為了逐字表達(dá)毒坛,你必須在"^.$()|*+?{\"這些字符前加上轉(zhuǎn)移字符'\'望伦。
請(qǐng)注意在方括號(hào)中林说,不需要轉(zhuǎn)義字符。
以下為本人收藏的正則表達(dá)式集:
驗(yàn)證數(shù)字:^[0-9]*$
驗(yàn)證n位的數(shù)字:^\d{n}$
驗(yàn)證至少n位數(shù)字:^\d{n,}$
驗(yàn)證m-n位的數(shù)字:^\d{m,n}$
驗(yàn)證零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$
驗(yàn)證有兩位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{2})?$
驗(yàn)證有1-3位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{1,3})?$
驗(yàn)證非零的正整數(shù):^\+?[1-9][0-9]*$
驗(yàn)證非零的負(fù)整數(shù):^\-[1-9][0-9]*$
驗(yàn)證非負(fù)整數(shù)(正整數(shù) + 0) ^\d+$
驗(yàn)證非正整數(shù)(負(fù)整數(shù) + 0) ^((-\d+)|(0+))$
驗(yàn)證長度為3的字符:^.{3}$
驗(yàn)證由26個(gè)英文字母組成的字符串:^[A-Za-z]+$
驗(yàn)證由26個(gè)大寫英文字母組成的字符串:^[A-Z]+$
驗(yàn)證由26個(gè)小寫英文字母組成的字符串:^[a-z]+$
驗(yàn)證由數(shù)字和26個(gè)英文字母組成的字符串:^[A-Za-z0-9]+$
驗(yàn)證由數(shù)字屯伞、26個(gè)英文字母或者下劃線組成的字符串:^\w+$
驗(yàn)證用戶密碼:^[a-zA-Z]\w{5,17}$ 正確格式為:以字母開頭腿箩,長度在6-18之間,只能包含字符劣摇、數(shù)字和下劃線珠移。
驗(yàn)證是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
驗(yàn)證漢字:^[\u4e00-\u9fa5],{0,}$
驗(yàn)證Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
驗(yàn)證InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
驗(yàn)證電話號(hào)碼:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正確格式為:XXXX-XXXXXXX末融,XXXX-XXXXXXXX钧惧,XXX-XXXXXXX,XXX-XXXXXXXX勾习,XXXXXXX浓瞪,XXXXXXXX。
驗(yàn)證身份證號(hào)(15位或18位數(shù)字):^\d{15}|\d{}18$
驗(yàn)證一年的12個(gè)月:^(0?[1-9]|1[0-2])$ 正確格式為:“01”-“09”和“1”“12”
驗(yàn)證一個(gè)月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正確格式為:01语卤、09和1、31酪刀。
整數(shù):^-?\d+$
非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0):^\d+(\.\d+)?$
正浮點(diǎn)數(shù) ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
負(fù)浮點(diǎn)數(shù) ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮點(diǎn)數(shù) ^(-?\d+)(\.\d+)?$