国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Regex > 正文

正則表達式 口訣 學習正則的朋友看看

2020-03-16 21:17:02
字體:
來源:轉載
供稿:網友
非常不錯的口訣,相信學習正則的朋友感覺入門很難,其實并不是想象中的難,你看下面不知道是哪位高手整理的口訣,看口訣就知道此人對正則的熟練程度非常高了。
 
 
正則是每個程序員繞不開的堡壘,只有把它攻下來。我覺得正則之所以難,第一難是需要記憶,第二難是要求具備抽象邏輯思維。 
簽于網上太多的介紹都是一篇兇悍的短文,邊看邊理解可以,幫助記憶不行。又受五筆字型字根表口訣“白手看頭三二斤...”的啟發, 
試作“正則表達式助記口訣”又名“正則打油詩”,版本0.1,絕對原創,仿冒必究,:) 
注:本文僅為學習正則時為了便于記憶而作,不能代替系統而全面的學習過程,錯漏之處,敬請指正! 
正則其實也勢利,削尖頭來把錢揣; (指開始符號^和結尾符號$) 
特殊符號認不了,弄個倒杠來引路; (指/. /*等特殊符號) 
倒杠后面跟小w, 數字字母來表示; (/w跟數字字母;/d跟數字) 
倒杠后面跟小d, 只有數字來表示; 
倒杠后面跟小a, 報警符號嘀一聲; 
倒杠后面跟小b, 單詞分界或退格; 
倒杠后面跟小t, 制表符號很明了; 
倒杠后面跟小r, 回車符號知道了; 
倒杠后面跟小s, 空格符號很重要; 
小寫跟罷跟大寫,多得實在不得了; 
倒杠后面跟大W, 字母數字靠邊站; 
倒杠后面跟大S, 空白也就靠邊站; 
倒杠后面跟大D, 數字從此靠邊站; 
倒框后面跟大B, 不含開頭和結尾; 
單個字符要重復,三個符號來幫忙; (* + ?) 
0 星加1 到無窮,問號只管0 和1; (*表0-n;+表1-n;?表0-1次重復) 
花括號里學問多,重復操作能力強; ({n} {n,} {n,m}) 
若要重復字符串,園括把它括起來; ((abc){3} 表示字符串“abc”重復3次 ) 
特殊集合自定義,中括號來幫你忙; 
轉義符號行不通,一個一個來排隊; 
實在多得排不下,橫杠請來幫個忙; ([1-5]) 
尖頭放進中括號,反義定義威力大; ([^a]指除“a”外的任意字符 ) 
1豎作用可不小,兩邊正則互替換; (鍵盤上與“/”是同一個鍵) 
1豎能用很多次,復雜定義很方便; 
園括號,用途多; 
反向引用指定組,數字排符對應它; (“/b(/w+)/b/s+/1/b”中的數字“1”引用前面的“(/w+)”) 
支持組名自定義,問號加上尖括號; (“(?<Word>/w+)”中把“/w+”定義為組,組名為“Word”) 
園括號,用途多,位置指定全靠它; 
問號等號字符串,定位字符串前面; (“/b/w+(?=ing/b)”定位“ing”前面的字符串) 
若要定位串后面,中間插個小于號; (“(?<=/bsub)/w+/b”定位“sub”后面的字符串) 
問號加個驚嘆號,后面跟串字符串; 
PHPer都知道, !是取反的意思; 
后面不跟這一串,統統符合來報到; (“/w*d(?!og)/w*”,“dog”不符合,“do”符合) 
問號小于驚嘆號,后面跟串字符串; 
前面不放這一串,統統符合來報到; 
點號星號很貪婪,加個問號不貪婪; 
加號問號有保底,至少重復一次多; 
兩個問號老規矩,0次1次團團轉; 
花括號后跟個?,貪婪變成不貪婪; 
還有很多裝不下,等著以后來增加。 
一些常用的正則表達式 
"^/d+$"  //非負整數(正整數 + 0) 
"^[0-9]*[1-9][0-9]*$"  //正整數 
"^((-/d+)|(0+))$"  //非正整數(負整數 + 0) 
"^-[0-9]*[1-9][0-9]*$"  //負整數 
"^-?/d+$"    //整數 
"^/d+(/./d+)?$"  //非負浮點數(正浮點數 + 0) 
"^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮點數 
"^((-/d+(/./d+)?)|(0+(/.0+)?))$"  //非正浮點數(負浮點數 + 0) 
"^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //負浮點數 
"^(-?/d+)(/./d+)?$"  //浮點數 
"^[A-Za-z]+$"  //由26個英文字母組成的字符串 
"^[A-Z]+$"  //由26個英文字母的大寫組成的字符串 
"^[a-z]+$"  //由26個英文字母的小寫組成的字符串 
"^[A-Za-z0-9]+$"  //由數字和26個英文字母組成的字符串 
"^/w+$"  //由數字、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] 
匹配雙字節字符(包括漢字在內):[^/x00-/xff] 
匹配空行的正則表達式:/n[/s| ]*/r 
匹配HTML標記的正則表達式:/<(.*)>.*<///1>|<(.*) //>/ 
匹配首尾空格的正則表達式:(^/s*)|(/s*$) 
匹配Email地址的正則表達式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)* 
匹配網址URL的正則表達式:^[a-zA-z]+://(//w+(-//w+)*)(//.(//w+(-//w+)*))*(//?//S*)?$ 
匹配帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
匹配國內電話號碼:(/d{3}-|/d{4}-)?(/d{8}|/d{7})? 
匹配騰訊QQ號:^[1-9]*[1-9][0-9]*$ 
G:看完了口訣,里邊總計的內容很多。但關于命名組的示例是錯的,還有環視的描述是不準確的,環視不占有字符,是進行位置的匹配,在某個點進行前窺后探。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 楚雄市| 鄱阳县| 留坝县| 江华| 平塘县| 西昌市| 湘乡市| 永安市| 丹阳市| 藁城市| 林西县| 抚远县| 嘉定区| 进贤县| 桑植县| 漳浦县| 普定县| 禹城市| 呼和浩特市| 灌南县| 冀州市| 射洪县| 长白| 阳原县| 丹凤县| 东丰县| 资兴市| 原平市| 大足县| 商南县| 青川县| 潍坊市| 石家庄市| 杂多县| 贡觉县| 万安县| 礼泉县| 甘南县| 郓城县| 武汉市| 大理市|