1. 程式人生 > >1.正則表示式-入門

1.正則表示式-入門

    前言:今天先分享正則表示式的基礎元字元,後續會分享正則表示式的子表示式,回溯引用,前後查詢,嵌入條件,,全部分享完成之後,會嘗試著去分享一些例子與拆分介紹。如果文字描述有問題可以評論指出,如果概念很模糊,可以加我微信,我會盡量解答你的疑惑。

正則表示式的定義

正則表示式,又稱規則表示式。(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正則表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。

正則表示式的字元區間

    []這個元符號可以定義一個字元集合,字元集合能夠與在該集合裡的字元區間的字元相匹配。字元區間可以使用 - 連字元來定義範圍。

  • A-Z 匹配從A到Z的所有大寫字母

  • a-z 匹配從a到z的所有小寫字母

  • A-Y 匹配從A到Y的所有大寫字母

  • A-z 匹配從ASCII字元A到ASCII字元z的所有字母

  • -只能在[]間出現,出現在[]外面,相等於匹配-

正則表示式取非

  • [^0-9] 匹配非數字

  • [^a-zA-Z] 匹配非英文

  • [^\S]  匹配非空白符

正則表示式的空白元字元

  • [\b]    回退並刪除一個字元(backspace)

  • \f       換頁符

  • \n    換行符

  • \r     回車符

  • \v     垂直製表符

  • \t     製表符tab鍵

 

注:\r\n是windows使用的文字行結束標籤,\n是unix/linux的文字行結束標籤

正則表示式的其他元字元

  • \d 匹配任何一個數字字元

  • \D 匹配任何一個非數字字元

  • \w 匹配任何一個字母數字字元(大小寫)或者下劃線字

    符=[0-9a-zA-Z_]

  • \W 匹配任何一個非字母數字或非下劃線字元

           =[^0-9a-zA- Z_]

  • \s 匹配任何一個空白字元=[\f\r\n\t\v]

  • \S 匹配任何一個非空白字元=[^\f\n\r\t\v]

 

正則表示式匹配字元

  • + 匹配一個或多個字元

  • * 匹配零個或者多個,可有可無,可多可少

  • ? 匹配零個或者一個字元 舉例:http與https

  • {}      可以設定匹配字元的次數

  • {3} 匹配三次

  • {4,8} 匹配最少4次,最多8次

  • {3,} 匹配重複最少3次

正則表示式的貪婪型字元與懶惰型字元

            * + 為貪婪性元字元,在進行匹配時,行為模式是多多益善而不是適可而止的,會盡可能的從一段文字的開頭一直匹配到文字的末尾,而不是從這段文字的開頭匹配到碰到的第一個匹配是為止。

懶惰型字元相反。

       貪婪型字元         懶惰型字元
           *            *?
            +            +?
           {n,}            {n,}?            

正則表示式邊界字元

 

\w相匹配的字元叫做單詞邊界,\W相匹配的叫做非單詞邊界

\b單詞邊界字元,例如:至匹配 at 而不匹配 what,可以使用 --\bat\b

\B匹配一個前後都不是單詞邊界的連字元(-),nine-digit不能匹配,color - coded的連字元(-)可以匹配