正則表達式 口訣 學習正則的朋友看看
更新時間:2009年04月17日 22:02:21 作者:
非常不錯的口訣,相信學習正則的朋友感覺入門很難,其實并不是想象中的難,你看下面不知道是哪位高手整理的口訣,看口訣就知道此人對正則的熟練程度非常高了。
正則是每個程序員繞不開的堡壘,只有把它攻下來。我覺得正則之所以難,第一難是需要記憶,第二難是要求具備抽象邏輯思維。
簽于網(wǎng)上太多的介紹都是一篇兇悍的短文,邊看邊理解可以,幫助記憶不行。又受五筆字型字根表口訣“白手看頭三二斤...”的啟發(fā),
試作“正則表達式助記口訣”又名“正則打油詩”,版本0.1,絕對原創(chuàng),仿冒必究,:)
注:本文僅為學習正則時為了便于記憶而作,不能代替系統(tǒng)而全面的學習過程,錯漏之處,敬請指正!
正則其實也勢利,削尖頭來把錢揣; (指開始符號^和結(jié)尾符號$)
特殊符號認不了,弄個倒杠來引路; (指\. \*等特殊符號)
倒杠后面跟小w, 數(shù)字字母來表示; (\w跟數(shù)字字母;\d跟數(shù)字)
倒杠后面跟小d, 只有數(shù)字來表示;
倒杠后面跟小a, 報警符號嘀一聲;
倒杠后面跟小b, 單詞分界或退格;
倒杠后面跟小t, 制表符號很明了;
倒杠后面跟小r, 回車符號知道了;
倒杠后面跟小s, 空格符號很重要;
小寫跟罷跟大寫,多得實在不得了;
倒杠后面跟大W, 字母數(shù)字靠邊站;
倒杠后面跟大S, 空白也就靠邊站;
倒杠后面跟大D, 數(shù)字從此靠邊站;
倒框后面跟大B, 不含開頭和結(jié)尾;
單個字符要重復,三個符號來幫忙; (* + ?)
0 星加1 到無窮,問號只管0 和1; (*表0-n;+表1-n;?表0-1次重復)
花括號里學問多,重復操作能力強; ({n} {n,} {n,m})
若要重復字符串,園括把它括起來; ((abc){3} 表示字符串“abc”重復3次 )
特殊集合自定義,中括號來幫你忙;
轉(zhuǎn)義符號行不通,一個一個來排隊;
實在多得排不下,橫杠請來幫個忙; ([1-5])
尖頭放進中括號,反義定義威力大; ([^a]指除“a”外的任意字符 )
1豎作用可不小,兩邊正則互替換; (鍵盤上與“\”是同一個鍵)
1豎能用很多次,復雜定義很方便;
園括號,用途多;
反向引用指定組,數(shù)字排符對應(yīng)它; (“\b(\w+)\b\s+\1\b”中的數(shù)字“1”引用前面的“(\w+)”)
支持組名自定義,問號加上尖括號; (“(?<Word>\w+)”中把“\w+”定義為組,組名為“Word”)
園括號,用途多,位置指定全靠它;
問號等號字符串,定位字符串前面; (“\b\w+(?=ing\b)”定位“ing”前面的字符串)
若要定位串后面,中間插個小于號; (“(?<=\bsub)\w+\b”定位“sub”后面的字符串)
問號加個驚嘆號,后面跟串字符串;
PHPer都知道, !是取反的意思;
后面不跟這一串,統(tǒng)統(tǒng)符合來報到; (“\w*d(?!og)\w*”,“dog”不符合,“do”符合)
問號小于驚嘆號,后面跟串字符串;
前面不放這一串,統(tǒng)統(tǒng)符合來報到;
點號星號很貪婪,加個問號不貪婪;
加號問號有保底,至少重復一次多;
兩個問號老規(guī)矩,0次1次團團轉(zhuǎn);
花括號后跟個?,貪婪變成不貪婪;
還有很多裝不下,等著以后來增加。
一些常用的正則表達式
"^\d+$" //非負整數(shù)(正整數(shù) + 0)
"^[0-9]*[1-9][0-9]*$" //正整數(shù)
"^((-\d+)|(0+))$" //非正整數(shù)(負整數(shù) + 0)
"^-[0-9]*[1-9][0-9]*$" //負整數(shù)
"^-?\d+$" //整數(shù)
"^\d+(\.\d+)?$" //非負浮點數(shù)(正浮點數(shù) + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮點數(shù)
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮點數(shù)(負浮點數(shù) + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //負浮點數(shù)
"^(-?\d+)(\.\d+)?$" //浮點數(shù)
"^[A-Za-z]+$" //由26個英文字母組成的字符串
"^[A-Z]+$" //由26個英文字母的大寫組成的字符串
"^[a-z]+$" //由26個英文字母的小寫組成的字符串
"^[A-Za-z0-9]+$" //由數(shù)字和26個英文字母組成的字符串
"^\w+$" //由數(shù)字、26個英文字母或者下劃線組成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil
"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //電話號碼
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址
匹配中文字符的正則表達式: [\u4e00-\u9fa5]
匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]
匹配空行的正則表達式:\n[\s| ]*\r
匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正則表達式:(^\s*)|(\s*$)
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網(wǎng)址URL的正則表達式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
匹配帳號是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配國內(nèi)電話號碼:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配騰訊QQ號:^[1-9]*[1-9][0-9]*$
G:看完了口訣,里邊總計的內(nèi)容很多。但關(guān)于命名組的示例是錯的,還有環(huán)視的描述是不準確的,環(huán)視不占有字符,是進行位置的匹配,在某個點進行前窺后探。
簽于網(wǎng)上太多的介紹都是一篇兇悍的短文,邊看邊理解可以,幫助記憶不行。又受五筆字型字根表口訣“白手看頭三二斤...”的啟發(fā),
試作“正則表達式助記口訣”又名“正則打油詩”,版本0.1,絕對原創(chuàng),仿冒必究,:)
注:本文僅為學習正則時為了便于記憶而作,不能代替系統(tǒng)而全面的學習過程,錯漏之處,敬請指正!
正則其實也勢利,削尖頭來把錢揣; (指開始符號^和結(jié)尾符號$)
特殊符號認不了,弄個倒杠來引路; (指\. \*等特殊符號)
倒杠后面跟小w, 數(shù)字字母來表示; (\w跟數(shù)字字母;\d跟數(shù)字)
倒杠后面跟小d, 只有數(shù)字來表示;
倒杠后面跟小a, 報警符號嘀一聲;
倒杠后面跟小b, 單詞分界或退格;
倒杠后面跟小t, 制表符號很明了;
倒杠后面跟小r, 回車符號知道了;
倒杠后面跟小s, 空格符號很重要;
小寫跟罷跟大寫,多得實在不得了;
倒杠后面跟大W, 字母數(shù)字靠邊站;
倒杠后面跟大S, 空白也就靠邊站;
倒杠后面跟大D, 數(shù)字從此靠邊站;
倒框后面跟大B, 不含開頭和結(jié)尾;
單個字符要重復,三個符號來幫忙; (* + ?)
0 星加1 到無窮,問號只管0 和1; (*表0-n;+表1-n;?表0-1次重復)
花括號里學問多,重復操作能力強; ({n} {n,} {n,m})
若要重復字符串,園括把它括起來; ((abc){3} 表示字符串“abc”重復3次 )
特殊集合自定義,中括號來幫你忙;
轉(zhuǎn)義符號行不通,一個一個來排隊;
實在多得排不下,橫杠請來幫個忙; ([1-5])
尖頭放進中括號,反義定義威力大; ([^a]指除“a”外的任意字符 )
1豎作用可不小,兩邊正則互替換; (鍵盤上與“\”是同一個鍵)
1豎能用很多次,復雜定義很方便;
園括號,用途多;
反向引用指定組,數(shù)字排符對應(yīng)它; (“\b(\w+)\b\s+\1\b”中的數(shù)字“1”引用前面的“(\w+)”)
支持組名自定義,問號加上尖括號; (“(?<Word>\w+)”中把“\w+”定義為組,組名為“Word”)
園括號,用途多,位置指定全靠它;
問號等號字符串,定位字符串前面; (“\b\w+(?=ing\b)”定位“ing”前面的字符串)
若要定位串后面,中間插個小于號; (“(?<=\bsub)\w+\b”定位“sub”后面的字符串)
問號加個驚嘆號,后面跟串字符串;
PHPer都知道, !是取反的意思;
后面不跟這一串,統(tǒng)統(tǒng)符合來報到; (“\w*d(?!og)\w*”,“dog”不符合,“do”符合)
問號小于驚嘆號,后面跟串字符串;
前面不放這一串,統(tǒng)統(tǒng)符合來報到;
點號星號很貪婪,加個問號不貪婪;
加號問號有保底,至少重復一次多;
兩個問號老規(guī)矩,0次1次團團轉(zhuǎn);
花括號后跟個?,貪婪變成不貪婪;
還有很多裝不下,等著以后來增加。
一些常用的正則表達式
"^\d+$" //非負整數(shù)(正整數(shù) + 0)
"^[0-9]*[1-9][0-9]*$" //正整數(shù)
"^((-\d+)|(0+))$" //非正整數(shù)(負整數(shù) + 0)
"^-[0-9]*[1-9][0-9]*$" //負整數(shù)
"^-?\d+$" //整數(shù)
"^\d+(\.\d+)?$" //非負浮點數(shù)(正浮點數(shù) + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮點數(shù)
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮點數(shù)(負浮點數(shù) + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //負浮點數(shù)
"^(-?\d+)(\.\d+)?$" //浮點數(shù)
"^[A-Za-z]+$" //由26個英文字母組成的字符串
"^[A-Z]+$" //由26個英文字母的大寫組成的字符串
"^[a-z]+$" //由26個英文字母的小寫組成的字符串
"^[A-Za-z0-9]+$" //由數(shù)字和26個英文字母組成的字符串
"^\w+$" //由數(shù)字、26個英文字母或者下劃線組成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil
"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //電話號碼
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址
匹配中文字符的正則表達式: [\u4e00-\u9fa5]
匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]
匹配空行的正則表達式:\n[\s| ]*\r
匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正則表達式:(^\s*)|(\s*$)
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網(wǎng)址URL的正則表達式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
匹配帳號是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配國內(nèi)電話號碼:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配騰訊QQ號:^[1-9]*[1-9][0-9]*$
G:看完了口訣,里邊總計的內(nèi)容很多。但關(guān)于命名組的示例是錯的,還有環(huán)視的描述是不準確的,環(huán)視不占有字符,是進行位置的匹配,在某個點進行前窺后探。
相關(guān)文章
正則驗證不能含有中文的實現(xiàn)方法【jQuery與java實現(xiàn)】
這篇文章主要介紹了正則驗證不能含有中文的實現(xiàn)方法,結(jié)合jQuery與java兩種實現(xiàn)方法分析了針對中文的正則驗證操作技巧,需要的朋友可以參考下2017-01-01