需要用到Pattern、Matcher這兩個類,都在java.util.regex這個包中。regex其實是regular expression的縮寫。
用Pattern指定正則表達式。Pattern的compile(String regex)靜態方法生成一個Pattern實例。
Pattern的matcher(CharSequence input)方法返回一個Matcher實例。
例如,正則表達式是([a-zA-Z]+)_\d+),字符串是sb_520AndSb_1314
Matcher常用方法:
boolean matches():
boolean find():如果字符串的任意子串能匹配這個正則表達式,則返回true,否則返回false。find()的作用就相當於Iterator的hasNext()方法,用於遍歷,如while(matcher.find()){},這樣就會從字符串的左邊開始把匹配正則的子串找出來,有幾個這樣的子串就能循環幾次。
matches()和find()方法區別:
以下方法在遍歷內部使用:
String group():返回此次匹配的子串
int start():返回此次匹配的子串的起始索引
int end():返回此次匹配的子串之后一個字符的索引,注意不是子串最后一個字符的索引,是子串之后一個字符的索引
String group(int group):返回此次匹配的子串中第N個分組對應的字符串,N從1開始。group(0)等同於group()。
int start(int group):返回此次匹配的子串中第N個分組對應的字符串的起始索引,N從1開始。start(0)等同於start()。
int end(int group):返回此次匹配的子串中第N個分組對應的字符串之后的一個字符的索引,N從1開始。end(0)等同於end()。
String group(String name):
int start(String name):
int end(String name):
Matcher的int groupCount()實例方法返回正則表達式中括號的數量。
