一、簡單的正規表示式
注意:
在使用正規表示式的時候,會發現幾乎所有的問題都有不止一種解決方法。
有的比較簡單,有的比較快速,有的相容性很好,有的功能更全,同乙個問題往往會有多種解決方案。
二、匹配單個字元
1、匹配純文字
2、多個匹配結果直接輸入文字,就可以匹配。
如:i am a boy.
輸入正規表示式 am
絕大多數正規表示式引擎的預設行為是只返回第1個匹配結果,也有實現了一種能夠把所有的匹配結果全部找出的機制(通常返回乙個陣列或是其他的專用格式)。3、字母的大小寫問題
絕大多數正規表示式都支援不區分字母大小寫的操作,強制執行一次不區分字母大小寫的搜尋。
4、匹配任意字元
. 字元(英文句號)可以匹配任何乙個單個的字元。注意:
通過dos的檔案搜尋功能 正規表示式 . 字元相當於dos的?字元sql中的 _ (下劃線) 字元 相當於正規表示式 . 字元
正規表示式可以用來匹配包含著字串內容的模式。
匹配的並不總是整個字串,而是與某個模式相匹配的字元——即使它們只是整個字串的一部分。
5、匹配特殊字元
如果模式裡需要乙個 . 就要想辦法來告訴正規表示式,你需要的是 . 本身而不是它在正規表示式裡的特殊含義。為此,必須在 . 的前面加上乙個 \ (反斜槓)字元來對它進行轉義。
\ 是乙個元字元(metacharacter,表示「這個字元有特殊含義,而不是字元本身含義」)
注意:
如果需要搜尋 \ 本身,就必須對字元進行轉義,相應的轉義序列是兩個來許的反斜槓字元 \\ .在絕大多數的正規表示式實現裡, . 可以匹配除了換行符之外的任何單個字元。
三、匹配一組字元
1、匹配多個字元中的某乙個
[ns]a.\.xls 匹配以[ns]開頭 : 這個集合匹配字元n或s(但不匹配其他字元)
注意:驗證某個模式能不能獲得預期的匹配結果並不困難,但如何驗證它不會匹配到你不想要的東西可就沒那麼簡單了。
[rr]eg[ee]x 可以匹配regex和regex,但不匹配regex
如果打算進行一次不需要區分字母大小寫的匹配,不需要使用這個技巧,這種模式最適合用在全域性看需要區分字母大小寫,但在某個區域性不需要區分字母大小寫的搜尋操作中。
2、利用字元集合區間
a-z 匹配從a到z的所有大寫字母a-z 匹配從a到z的所有小寫字母
a-f 匹配從a到f的所有大寫字母
0-9 等價於 0123456789
#[0-9a-fa-f][0-9a-fa-f][0-9a-fa-f][0-9a-fa-f][0-9a-fa-f][0-9a-fa-f] 用來匹配 rgb值 如:#336633 #ffffff
在定義乙個字元區間的時候,一定要避免讓這個區間的尾字元小於首字元 如: [3-1] 沒有意義還會讓整個模式失效
- (連字元) ,只能用在 [ 和 ] 之間。
3、取非匹配
除了那個字元集合裡的字元,其他字元都可以匹配。如: [ns]a[^0-9] \.xls
^ 的效果將作用於給定字元集合中所有字元或字元區間,而不是僅限於緊跟在^字元後面的那乙個字元或字元區間
4、匹配空白字元
[\b] 回退(並刪除)乙個字元(backspace)\f 換頁符
\n 換行符
\r 回車符
\t 製表符(tab鍵)
\v 垂直製表符
\r\n 匹配乙個 「回車+換行」 組合 是 windows所使用的文字行結束標籤
unix和linux系統只是用乙個換行符來結束乙個文字行 :\n
4、使用元字元
\d 任何乙個數字字元等價於[0-9]\d 任何乙個非數字字元等價於[^0-9]
\w 任何乙個字母數字字元(大小寫均可)或下劃線字元等價於[a-za-z0-9_]
\w 任何乙個非字母數字或非下劃線字元等價於[^a-za-z0-9_]
\s 任何乙個空白字元等價於[\f\n\r\t\v]
\s 任何乙個非空白字元等價於[^\f\n\r\t\v]
正規表示式學習筆記二
color blue b 字元 描述 b color color blue b b color 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 color blue b b color 匹配輸...
學習正規表示式筆記(二)
擇一匹配用管道符號 也就是豎線表示。代表可以從多個模式中選擇乙個,可用於分割正規表示式。例如 abc abc 表示即可以匹配 abc,又可以匹配 abc。點號 可以匹配除換行符 n 以外的任意字元,無論是空格,字母,數字,可列印字元 不可列印字元,還是乙個符號,使用點號都能夠匹配它們。在python...
正規表示式學習筆記之一 簡單認識正規表示式
正規表示式是什麼東東?在編寫處理字串的程式或網頁時,經常會有查詢符合某些複雜規則的字串的需要。正規表示式就是用於描述這些規則的工具。換句話說,正規表示式就是記錄文字規則的 很可能你使用過windows dos下用於檔案查詢的萬用字元 wildcard 也就是 和?如果你想查詢某個目錄下的所有的wor...