blog
正則表達式
\b
: 單詞的開頭或結尾, 也可稱做單詞的分界處. 通常單詞使用的是空格或是標點符號來分隔單詞,\b
只是匹配一個位置,並不匹配單詞分隔符中的任何一個..
: 匹配除了換行符之外的任意字符.*
: 匹配在它以前的能夠連續重複使用任意次用來使整個表達式得以匹配,表明的既不是字符也不是位置.(.*
組合在一塊兒是任意數量的不包含換行的字符).+
: 匹配重複1次或更屢次(注意和*
的區別).\d
: 匹配數字.\w
: 匹配字母或數字或下劃線或漢字.^
: 匹配字符串的開始.$
: 匹配字符串的結束.\s
: 匹配任意的空白符,包括空格,製表符(Tab),換行符,中文全角空格等.\W
: 匹配任意不是字母,數字,下劃線,漢字的字符.\S
: 匹配任意不是空白符的字符.\S+
: 匹配不包含空白符的字符串.\D
: 匹配任意非數字的字符.\B
: 匹配不是單詞開頭或結束的位置.[^x]
: 匹配除了x之外的任意字符.[^aeiou]
: 匹配除了aeiou這幾個字母之外的任意字符.*
: 重複零次或更屢次.+
: 重複一次或更屢次.?
: 重複零次或一次.{n}
: 重複n次.{n,}
: 重複n次或更屢次.{n,m}
: 重複n到m次.|
)|
即管道,知足任意一種狀況均可以匹配 (\d{5}-\d{4}|\d{5}
,美國郵政編碼,5位數字或是使用-
9位數字).()
)()
即子表達式,指定子表達式重複的次數((\d{1,3}\.){3}\d{1,3}
,ip地址,更復雜的ip匹配((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
)(exp)
: 匹配exp,並捕獲文本到自動命名的組裏.(?<name>exp)
: 匹配exp,並捕獲文本到名稱爲name的組裏,也能夠寫成(?'name'exp).(?:exp)
: 匹配exp,不捕獲匹配的文本,也不給此分組分配組號.((?:exp)
不會改變正則表達式的處理方式,只是這樣的組匹配的內容不會像前兩種那樣被捕獲到某個組裏面,也不會擁有組號。)\b
,\^
,$
用於指定位置)(?=exp)
: 匹配exp前面的位置.(\b\w+(?=ing\b)
匹配以ing
結尾的單詞的除ing之外的部分)(?<=exp)
: 匹配exp後面的位置.((?<=\bre)\w+\b
匹配以re
開頭的單詞除re之外的部分)(?!exp)
: 匹配後面跟的不是exp的位置.(?<!exp)
: 匹配前面不是exp的位置.(?#comment)
: 這種類型的分組不對正則表達式的處理產生任何影響,用於提供註釋讓人閱讀.\d
= [0-9]
+
= {1,}
*
= {0,}
?
= {0,1}
\D
= [^0-9]
\w
= [A-Za-z_0-9]
match
方法 exec
方法 test
方法 search
方法 replace
方法 split
方法 ps: 參考了不少目前沒有接觸到的知識,有些很複雜的感受須要後期再次閱讀,暫不放進整理的文檔裏,正則按個人理解,匹配的那些都大同小異,我想,寫的一手好正則的人必然是經歷很深刻的理解與實踐才能夠達成,目前在正則上的理解仍是不太夠的,平時實踐的內容最多用在匹配字符串,數字這樣簡單的正則實踐上,不過經過這幾天斷斷續續的整理與思考,發現正則仍是頗有用處,之後再接觸的正則,也必須時刻經過複習與更深入的理解實踐才行.數組