正規表示式學習日記

2021-06-06 05:30:54 字數 3555 閱讀 1171

1、「.」為萬用字元,表示任何乙個字元,例如:「a.c」可以匹配「anc」、「abc」、「acc」;

2、「」,在內可以指定要求匹配的字元,例如:「a[nbc]c」可以匹配「anc」、「abc」、「acc」

;但不可以匹配「ancc」,a到z可以寫成[a-z],0到9可以寫成[0-9];

3、數量限定符號,表示匹配次數(或者叫做長度)的符號:

包括:「*」——0次或者多次

「+」——1次或者多次

「?」——0次或者1次

「」——匹配n次,n為整數

「」——匹配從n到m之間的某個數的次數;n和m都是整數;

「」——匹配n到無窮次之間任意次數;

「」——匹配0到m之間任意次數;

他們放到匹配格式的後面:

例如:**號碼:024-84820482,02484820482(假設前面3或者4位,後面7或者8位,並且中間的減號可有可無)

都是符合規定的,那麼可以用如下格式來匹配:[0-9] \-? [0-9];

注意:「\」為轉義字元,因為「-」在正規表示式用有代表乙個範圍的意義,例如:前面所說的[0-9],

所以它需要轉義字元「\」進行轉義才可使用;

4、「^」為否符號,表示不想匹配的符號,例如:[^z][a-z]+可以匹配所有除「z」開頭的以外的所有字

符串(長度大於2,因為「+」表示大於等於1的次數,從第二位開始都是小寫英文本元);

如果^放到的外邊則表示以開頭的字串;^[az][a-z]+表示a或者z開頭的長度大於等於2的英文本元 串;

5、「|」或運算子,例如:a[n|bc|cb]c可以匹配「abcc」,「anc」,「acbc」;

6、「$」以它前面的字元結尾的;例如:ab+$就可以被「abb」,「ab」匹配;

7、一些簡單表示方法:

\d表示[0-9];\d表示[^0-9];\w表示[a-z0-9];\w表示[^a-z0-9];\s表示[\t\n\r\f],就是空格字元包括tab

,空格等等;\s表示[^\t\n\r\f],就是非空格字元;

8、常用的匹配:

匹配中文字元: 「[\u4e00-\u9fa5]」;

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

匹配空行的正規表示式:「\n[\s| ]*\r」;

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

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

匹配非負整數(正整數 + 0):「^\d+$」;   

匹配正整數:「^[0-9]*[1-9][0-9]*$」; 

匹配非正整數(負整數 + 0):「^((-\d+)|(0+))$」;

匹配負整數:「^-[0-9]*[1-9][0-9]*$」;

匹配整數:「^-?\d+$」;

匹配非負浮點數(正浮點數 + 0):「^\d+(\.\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+)?)|(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+)?$」;

匹配由數字、26個英文本母或者下劃線組成的字串:「^\w+$」;

匹配url:「^[a-za-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$」

常用正規表示式

非負整數(正整數 + 0) 

[^\\d+$] 

正整數                  

[^[0-9]*[1-9][0-9]*$]   

非正整數(負整數 + 0)

[^((-\\d+)|(0+))$]        

負整數 

[^-[0-9]*[1-9][0-9]*$]   整數

[^-?\\d+$]       

非負浮點數(正浮點數 + 0) 

[^\\d+(

\\.\\d+)?$]  

正浮點數 

[^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$]  

非正浮點數(負浮點數 + 0) 

[^((-\\d+(

\\.\\d+)?)|(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+)?$]  

由26個英文本母組成的字串 

[^[a-za-z]+$]  

由26個英文本母的大寫組成的字串 

[^[a-z]+$]  

由26個英文本母的小寫組成的字串

[^[a-z]+$]  

由數字和26個英文本母組成的字串 

[^[a-za-z0-9]+$]  

由數字、26個英文本母或者下劃線組成的字串 

[^\\w+$]  

email位址 

[^[\\w-]+(

\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$]    

url[^[a-za-z]+://(

\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\s*)?$]  

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

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

中國**號碼驗證 

匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222 

正規表示式 "((d)|d-)?d(-d)*"

匹配形式如:215421 

正規表示式 "d"

電子郵件驗證 

匹配形式如:[email protected] 

正規表示式 "w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"

身份證驗證 

匹配形式如:15位或者18位身份證 

正規表示式 "d|d"

常用數字驗證 

正規表示式  

"d" n為規定長度 

"d" n到m的長度範圍

非法字元驗證 

匹配非法字元如:< > & / ' |  

正規表示式 [^<>&/|'\]+

日期驗證 

匹配形式如:20030718,030718 

範圍:1900--2099 

正規表示式((((19)|(20))d)|d)[01]d[0-3]d

正規表示式學習日記

1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫做長度 的符號 包括...

正規表示式學習

概念 正規表示式,就是用某種模式去匹配一類字串的乙個公式。基礎 下表列出了所有的元字元和對它們的乙個簡短的描述。簡單例子 vi 命令作用 s g 把乙個或者多個空格替換為乙個空格 s 去掉行尾的所有空格 s 在每一行頭上加入乙個空格 s 0 9 0 9 去掉行首的所有數字字元 s b aeio g ...

正規表示式學習

1.元字元 1 匹配任何單個字元 2 匹配括號中的任何乙個字元 可以再括號中使用連字元 來指定子都的區間來簡化表示,如a 0123456789 c等價於a 0 9 c 3 將 之間括起來的表示式定義為 組 4 將兩個匹配條件進行邏輯 或 運算 z f ood則匹配 zood 或 food 5 匹配0...