Java總結-正則表達式

正則表達式:
    專門用于操作字符串的規則。
    將一些操作代碼通過一些符號體現。
    好處:
        1,方便了程序的編寫。
        2,可以用于對字符串的復雜操作。
    弊端:
        閱讀性較差。


常用規則:
[]:限定某一位字符內容范圍。
比如:    [abc]:該位字符只能出現a或者b或者c。
    [a-z]:改為字符只要是小寫字母中的一個即可。
{}:限定前一個字符或者正則規則內容出現的次數。
比如:    {3}:出現3次。
    {3,}:至少出現3次。
    {3,7}:出現3到7次。

數量規則:
    ?:出現一次或者0次。
    :出現了0次或者多次。
    + :出現1次或者多次。

字符規則:
    \d: [0-9],數字。
    \D: [^0-9],非數字。
    \w: [a-zA-Z0-9_]
    \b: 單詞邊界。
    \s: 空格,tab,\r  \n.

組規則:
    可以將正則表達式的結果通過()進行封裝,以便于該規則內容被重用
    技巧:當出現了嵌套組的時候,通過左括號來進行編號的判斷。該編號從1開始。

    如果使用已定好的組呢?
    通過\n形式,反向引用組。()\1+。

特殊:
    $ : 代表是行結束。
    ^ : 行開始。
    . : 代表任意字符。


--------
對字符串操作的常見功能。
1,匹配。String matches(regex);其實最終使用的是Matcher匹配器對象。
    需求:判斷QQ號碼。5~15 0不可以開頭。
    qq.matches("[1-9]\d{4,14}");

2,切割:String split(regex);
    需求:如果想通過  .  的形式起個字符串。
    split("\.");

3,替換:String replaceAll(regex,str);
    在regex表達式中使用了組。那么可以在str中的通過  $編號 的形式獲取regex中的組。
    需求:如果想將符合規則的內容替換成一個$符號。
    replaceAll(regex,"\$");
    需求:替換疊詞,用疊詞中的一個替換全部。
    s.replaceAll("(.)\1+","$1");

4,查找:涉及到java.util.regex包中兩個對象。Pattern ,Matcher。
    1,將正則規則封裝成Pattern對象。Pattern p = Pattern.compile(regex);
    2,將規則對象和要作用的字符串相關聯,獲取匹配器對象。Matcher m  = p.matcher(str);
    3,通過匹配器對象find()將規則去操作字符串,如果找到返回true。
       在通過group()方法獲取找到符合規則的內容。


練習:
    1,獲取一段英文有三個字母組成的單詞。
    2,操作一組ip地址,按ip地址順序排序。
    3,Email規則。/
[a-zA-Z0-9_]*/  "\w{6,12}@[a-zA-Z0-9]+(\.[a-zA-Z]+)+"
    4,網頁爬蟲。           
        遍歷網頁中的文本,將符合規則的信息獲取。

應用場景:
注冊表單的校驗。

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!