在閱讀本文前,你應該已經瞭解了正則表達式的基本概念以及如何書寫正則表達式。若是對正則表達式不是太瞭解,或者想更深刻地瞭解正則表示式,請點擊這裏。html
捕獲組可以讓咱們方便地從正則表達式中提取出咱們須要的內容。捕獲組根據字符出現的順序,從左往右開始進行編號。例如正則表達式((A)(B(C)))
, 其捕獲組分別爲:java
一個捕獲組一般是用括號包起來的部分,其中整個正則表示式是第一個捕獲組,能夠選擇用括號包起來,也能夠不用括號。除第一個捕獲組以外,其餘捕獲組都需用括號包起來。正則表達式
java.util.regex包中有一個interface,兩個class和一個exception,分別是code
其中,MatchResult是interface, Matcher實現了這個interface。Pattern和Matcher是class,Pattern是一個正則表達式經編譯後的表現模式,Matcher是一個狀態機器。htm
靜態方法,把一個正則表示式編譯後,生成一個Pattern對象實例對象
Patter p = Pattern.compile("\\d{2}"); p.pattern(); //返回 \d{2}
生成一個Matcher對象。Matcher類時不能直接實例化的,能夠經過此方法實例化一個Matcher對象,從而進行各類操做。blog
直接使用正則表達式對輸入的字符串進行匹配,匹配成功則返回true字符串
使用正則表示式,進行字符串分割get
進行匹配操做,若是匹配成功,這三個方法都會返回true.其中,find()是在源字符串中找出和正則表達式匹配的字符串。find(int start)是從start位置開始尋找下一個匹配的字符串。lookingAt()是從源字符串的第一個字符進行匹配。matches()是對整個源字符串中進行匹配,若是都匹配才返回true。input
String str="abcd23" Pattern.matches("\\w{4}\d{2}",str); //快捷方式 Pattern p = Pattern.compile("\\w{4}\d{2}"); Matcher m = p.matcher(str); //和上面的方法等價 m.matches();
當使用find() / find(int start) / lookingAt() / matches()進行匹配操做並返回true以後,才能夠執行者三個方法獲取更加詳細的信息。
group():返回匹配到的字符串
start():返回匹配到的字符串在源字符串中的位置
end(): 返回匹配到的字符串的最後一個字符在源字符串中的位置
另外這幾個方法分別有一個重載方法 group(int i) / start(i) / end(i), 分別用於對第i個捕獲組進行對應的操做
替換源字符串中和正則表達式匹配的子字符串。其中replaceAll是替換全部的,replaceFirst是替換第一個匹配的。