JAVA API 之正則表達式

Day02

     正則表達式

     匹配:匹配個數要一樣字母大小敏感  數字看整體的數值 

     注意   \\ java 中只代表一個 \   特殊字符需要轉義 


## 正則表達式 

### 什麼是正則

       1. 正則本身是一個字符串

       2. 正則用於檢索目標字符串中的規則

       3. 正則是規定字符規則的字符串。

       4. 正則需要解析器執行,Java提供了相關的解析處理API

       5. 常見的編程語言大部分支持提供了正則API

1普通字符得匹配

       包括字母數字漢字下劃線以及沒有特殊定義的標點符號  (所有的都要匹配完才結束)  /(普通字符)

2簡單的轉義字符

      \r 代表回車                  \\t代表 (\ t) java中單獨寫 \ 會報錯

      \t 代表值表符

      \n 換行符

      \\代表 \本身

      \ 轉義字符  (特殊用處得標點符號需要轉義\^   \$  \.

3預定的匹配符號

      .  規則:任意一個字符(除換行符外\n  \r

      \d : 0-9 任意的數字的任意一個

      \D: 非數字  符的任意一個

       \w : 任意的數字字母下劃線的任意一個

       \W : 非任意的  數字字母下劃線

       \s 包括空格製表符換行符等空白字符的任意一個    單一的空格只能匹配空格  單一的/t 只能單一匹配

        \S 除了單個字符外的所有字符

4 自定義的匹配

        [abc] 匹配:abc字符之一

         [^abc]匹配:除了abc字符之一

         [a-z]匹配:abc ... z 字符之一

         [a-zA-Z0-9]匹配:a-z , A-Z 0-9 字符之一

          [a-z&& [^de]] 匹配:a-z 中除去 d e

          ^ 取非   - ...

5 匹配次數的特殊符號(向左看)修飾前面的

      {n}      n

      {m,n}  m n

      {m,}     至少任意次

       ? 0 1

      *  0

      +  1  

6 特殊字符的匹配需要轉義

    [  ] {  }  ?  *  + .  \  ( )  | ^  $  的字符

    /來轉義寫成//

 7匹配邊界

      ^ 放在中括號表示取反  外面表示開頭

 8 關於邊界匹配 ^ $

      1. 一般情況下對於字符串整體進行檢驗時候使用 ^ $

              -如:檢查用戶輸入的電話號碼的整體符合電話號碼規則

              >matches 本身是包含邊界匹配

     2. 如果只是匹配字符串中的部分信息,就不要使用 ^ $

             - 如:檢索目標字符串中的敏感詞,並且替換

 9 分組

          取反(?:

          將一組序列整體進行處理

案例:

         匹配規則: abcabcabcabcabcabc, abc連續出現6

         利用分組: (abc){6}

10 | 表示的意思

         通常和()以一起用

object 根基類

toString() 所有子類應該重寫 toString( ),toString()一般返回一些重要的屬性  由系統自動調用

matches

簡單檢查字符串整體是否符合指定的規則, 返回boolean類型的結果,true表示檢查成功。

 booleanb = 字符串.matches(正則規則)

> 這個方法默認包含重頭到尾的邊界匹配,所以是否使用邊界匹配結果是一樣的。

replaceAll

語法:去除一句話的敏感詞

              字符串.replaceAll(正則, 替換字符串)

              text.replaceAll("[去草]", "**");

### Split

數據:            ]

     str= "1,  範傳奇, [email protected], 110"

需求: 

              將如上數據拆分開:

              "1"

              "範傳奇"

              "[email protected]"

              "110"

              String[]ary=str.split(分界位置正則)

## Object

1. 如果類沒有聲明父類型,則其默認繼承於Object

2. 如果一個類有父類型,則其父類型或祖先類型一定繼承於Object

3. 任何類型一定繼承於 Object

4. 繼承了Object的全部可繼承方法

 -toString

### toString 方法

1. 任何類型的對象都繼承了Object方法

2. 默認的返回值類全名@散列值默認的toString返回值,沒有業務意義!

3. Java 建議子類重寫掉 toString

      * 如何重寫toString經常返回對象的關鍵屬性

      * 信息,根據業務規則選定關鍵屬性,方便軟件

      * 的調試。println() 會自動調用toString

      * 很多Java API 會自動調用toString方法

  1. 如果類沒有聲明父類型,則其默認繼承於Object

   2. 如果一個類有父類型,則其父類型或祖先類型

    一定繼承於Object

   3. 任何類型一定繼承於 Object

   4. 繼承了Object的全部可繼承方法

### equals 方法

Object提供了equals方法,用於比較對象是否相等,但其默認的方法不能達到這個目的,Java建議子類重寫equals方法解決兩個對象比較是否相等的問題。

> 可以利用開發工具提供的 equals 實現功能,快速的實現equals方法

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章