通用正則表達式學(xué)習(xí)的總結(jié)
正則表達式學(xué)習(xí)總結(jié)在網(wǎng)上已經(jīng)不少了,不過這種筆記多多益善,多看看總是能增進些記憶。下面這個正則表達式學(xué)習(xí)筆記,希望對大家有所幫助。
\d = [0-9]  表示0-9的任意一個數(shù)字 
\D = [^0-9]  表示除數(shù)字之外的任意字符 
\w = [0-9a-zA-Z]  表示數(shù)字或字母 
\W = [^0-9a-zA-Z]  表示除數(shù)字或字母外的任意字符 
\s 匹配空白字符(回車、換行、制表、空格) 
\S 非空白字符 
.能匹配所有字符,除換行符\n(但在如下的模式匹配中將可以匹配\n) 
\.和[.]匹配點號本身 
*  0-無窮 
+  1-無窮 
?  0-1次 
之前的字符可用括號來表示字符數(shù)組的多次,如:(ac)+表示出現(xiàn)一個及以上的ac字符串 
{min,max}  min-max次   \d{1,3} 匹配1-3個數(shù)字 
{min,}  min-無窮次      \d{1,} 匹配一個及以上的數(shù)字 
{number} 只能是number次  \d{3} 匹配3個數(shù)字 
多選: 
(...|...)在豎線兩端添加各個字符串表示多選   (ac|ab) 匹配ac或ab 
捕獲分組: 
1、只要使用了括號就存在捕獲分組 
2、編號按從左至右 
3、獲取到的值是匹配的最后一個字符串 
(?:..)不捕獲文本,不是所有語言都支持,不推薦使用 
反向引用: 
\1  引用括號內(nèi)出現(xiàn)的內(nèi)容,數(shù)字為括號編號  (ac)\1 匹配acac 
錨點: 
\b  單詞分解符錨點、一側(cè)是單詞字符,另一側(cè)是非單子字符 
        單詞字符通常是指英文字符、數(shù)字字符,對中文不適用 
        非單詞字符通常是指各種標(biāo)點復(fù)和空白字符 
^匹配一行的的開頭(有可能變化) 
$匹配一行的末尾(有可能變化) 
\A匹配整個字符串的開頭 
\Z匹配整個字符串的末尾 
環(huán)視: 
(?=...)   肯定順序環(huán)視  右側(cè)文本能由此表達式匹配 
(?!...)   否定順序環(huán)視  右側(cè)文本不能由此表達式匹配 
(?<=...)  肯定逆序環(huán)視  左側(cè)文本能由此表達式匹配 
注意: 
1、環(huán)視結(jié)構(gòu)僅用于布爾判斷,結(jié)構(gòu)內(nèi)的子表達式所匹配的文本,不會保存在整個表達式的匹配結(jié)果之中 
2、逆序環(huán)視結(jié)構(gòu)對子表達式存在限制: 
        Perl、Python:子表達式必須為固定長度 
        PHP、Java:子表達式 
可以不定長度,但必須有上限 
        .NET:沒有任何限制 
匹配模式: 
I:不區(qū)分大小寫 Pattern.CASE_INSENSITIVE 
S:.可以匹配任何字符 Pattern.DOTALL 
M:^$可以匹配字符串中任意起始位置和結(jié)束位置 Pattern.MULTILINE 
X:可以添加注釋(注釋以#開頭以換行符結(jié)束或到表示末尾,此模式會忽略表達式中的所有空白字符) Pattern.COMMENTS 
使用多個模式時用|來分隔
作用范圍:ismx為模式名,如(?i)AB(?-i)C  (?is) 
(?ismx)啟用模式 
(?-ismx)停用模式 
模式范圍優(yōu)先級高于外部指定的模式 
正則表達式學(xué)習(xí)先總結(jié)到這里。本文來自JavaEye博客:《正則表達式學(xué)習(xí)筆記》
【編輯推薦】















 
 
 






 
 
 
 