正規表示式學習筆記 二 簡單的正規表示式

2021-07-16 03:10:42 字數 3169 閱讀 5655

一、簡單的正規表示式

注意:

在使用正規表示式的時候,會發現幾乎所有的問題都有不止一種解決方法。

有的比較簡單,有的比較快速,有的相容性很好,有的功能更全,同乙個問題往往會有多種解決方案。

二、匹配單個字元

1、匹配純文字

直接輸入文字,就可以匹配。

如:i am a boy.

輸入正規表示式   am

2、多個匹配結果

絕大多數正規表示式引擎的預設行為是只返回第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...