1. 程式人生 > >Java SE之正則表達式一:概述

Java SE之正則表達式一:概述

分隔符 序號 show 器) sequence page ESS java基礎 while

正則表達式

概念

  • 定義:符合一定規則的表達式
  • 作用:用於專門操作字符串
  • 特點:用於一些特定的符號表示代碼的操作,這樣就簡化了長篇的程序代碼

  • 好處:可以簡化對字符串的復雜操作
  • 弊端:符號定義越多,正則越長,閱讀性越差

關鍵類

  • String
  • Pattern:正則類對象
  • Matcher:通過解釋Pattern對character sequence執行匹配操作的引擎類。(匹配器)

具體操作功能

匹配:返回是否與規則匹配的布爾值
1 String:
    boolean string.matches(String regex)
2 Pattern + Matcher:
    Pattern pattern.compile(String regex)
    Matcher pattern.matcher(String regex) 
    boolean matcher.matches()
3 Pattern
    boolean b = Pattern.matches(String regex, String string)
切割:返回符合規則以外的字符串
1 String:String[] split(String regex)
2 String:String[] split(String regex, int limit)

> 為了讓規則的結果被重用,可以讓規則封裝成一個組,用()完成。組的出現都有編號:
    從1開始想要使用已有的組可以通過格式:\ + 組序號
    Eg:以疊詞作為分隔符號,切隔字符串:(.)\1+
    Eg:     (X(Y(Z)))(M)
        組號:1 2 3    4   
替換:返回被規則替換的字符串
1 String:String replaceAll(String regex, String replacement):regex-\n
2 String:String replaceFirst(String regex, String replacement):replacement-$n
3 Pattern + Matcher:
    Pattern pattern.compile(String regex)
    Matcher pattern.matcher(String regex) 
    -------------------------------------
    String matcher.quoteReplacement(String s)
    String matcher.replaceAll(String replacement)
    String replaceFirst(String replacement) 
獲取:將字符串中的規則的子串取出
將正則表達式封裝成對象;讓正則表達式和要操作的字符串相關聯;關聯後,獲取正則匹配引擎;通過引擎對符合規則的子串進行操作,如:取出
1   //step1:將規則封裝成對象
    Pattern pattern = Pattern.compile(regex);
    
    //step2:讓正則對象和要提取的字符串相關聯,獲取匹配(器)引擎對象
    Matcher matcher = pattern.matcher(string);
    
    while(matcher.find()) {//不斷地利用正則引擎查找符合正則表達式的對象,找到:true;沒有找到:false
        System.out.println("start:" + matcher.start() + " word:" + matcher.group() + " end:" + matcher.end());//返回當前查找到的一個子串,並返回其單詞的開始start()與結束區間end()
    }

參考文獻

[黑馬程序員_畢向東_Java基礎視頻教程第25天](http://www.huahuionline.com/MainCtrl?page=ShowLessonDetailPage&lesson_id=56c1838945ceb61ab5246f3d&cNo=1)

Java SE之正則表達式一:概述