正規表示式口訣

2021-05-22 17:18:18 字數 3269 閱讀 6486

試作「正規表示式助記口訣」 又名「正則打油詩」,版本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次重複)

花括號裡學問多,重複操作能力強; ( )

若要重複字元 串,園括把它括起來; ((abc) 表示字串「abc」重複3次 )

特殊集合自定義,中括號來幫你忙;

轉義符號行不通,一 個乙個來排隊;

實在多得排不下,橫槓請來幫個忙; ([1-5])

尖頭放進中括號,反義定義威力大; ([^a]指除「a」外的任意字元 )

1豎作用可不小,兩邊正則互替換; (鍵盤上與「/」是同乙個鍵)

1豎能用很多次,複雜定義很 方便;

園括號,用途多;

反向引用指定組,數字排符對應它; (「/b(/w+)/b/s+/1/b」中的數字「1」引用前面的「(/w+)」)

支援組名自定義,問號加上尖括號; (「(?/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|d)-((0([1-9]))|(1[1|2]))-(([0-2]([1-9]))|(3[0|1]))$/ // 年-月-日

/^((0([1-9]))|(1[1|2]))/(([0-2]([1-9]))|(3[0|1]))/(d|d)$/ // 月/日/年

"^([w-.]+)@(([[0-9].[0-9].[0-9].)|(([w-]+.)+))([a-za-z]|[0-9])(]?)$" //emil

"(d+-)?(d-?d|d-?d|^d)(-d+)?" //**號碼

"^(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5])$" //ip位址

(((/d)|(1/d)|(2[0-4] /d)|(25[0-5]))/.)((/d)|(1/d)|(2[0-4]/d)|(25[0-5]))//ip位址

匹配中文字元的正規表示式: [/u4e00-/u9fa5]

匹配雙位元組字元(包括漢字在內):[^/x00- /xff]

匹配空行的正規表示式:/n[/s| ]*/r

匹配html標記的正規表示式:/<(.*)>.*|<(.*) //>/

匹配首尾空格的正規表示式:(^/s*)|(/s*$)

匹配email位址的正則 表示式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*

匹配**url的正規表示式:https?://[-/w.]+(:/d+)?(/([/w/_.]*)?)?,或者 ^[a- za-z]+://(://w+(-//w+)*)(//.(//w+(-//w+)*))*(//?//s*)?$

看完了口訣,裡邊總計的內容很多。但關於命名組的示例是錯的,還有環視的描述是不準確的,環視不占有字元,是進行位置的匹配,在某個點進行前窺後探。

參考參考資料

正規表示式口訣

非常不錯的口訣,相信學習正則的朋友感覺入門很難,其實並不是想象中的難,你看下面不知道是哪位高手整理的口訣,看口訣就知道此人對正則的熟練程度非常高 了。正則是每個程式設計師繞不開的堡壘,只有把它攻下來。我覺得正則之所以難,第一難是需要記憶,第二難是要求具備抽象邏輯思維。簽於網上太多的 介紹都是一篇兇悍...

正規表示式口訣

正則其實也勢利,削尖頭來把錢揣 指開始符號 和結尾符號 特殊符號認不了,弄個倒槓來引路 指 等特殊符號 倒槓後面跟小w,數字字母來表示 w跟數字字母 d跟數字 倒槓後面跟小d,只有數字來表示 倒槓後面跟小a,報警符號嘀一聲 倒槓後面跟小b,單詞分界或退格 倒槓後面跟小t,製表符號很明了 倒槓後面跟小...

正規表示式口訣

正則其實也勢利,削尖頭來把錢揣 指開始符號 和結尾符號 特殊符號認不了,弄個倒槓來引路 指 等特殊符號 倒槓後面跟小w,數字字母來表示 w跟數字字母 d跟數字 倒槓後面跟小d,只有數字來表示 倒槓後面跟小a,報警符號嘀一聲 倒槓後面跟小b,單詞分界或退格 倒槓後面跟小t,製表符號很明了 倒槓後面跟小...