標籤:
Regex
符合一定規則的運算式
作用:專門用於操作字串
特點:用於一些特定的符號來表示一些代碼操作,這樣就簡化書寫
好處:可以簡化對字串的複雜操作
具體操作功能:
1、匹配:
public boolean matches(String regex)
參數
regex - 用來匹配此字串的Regex
2、切割
String[] split(String regex)
根據給定Regex的匹配拆分此字串。
3、替換
String replaceAll(String regex , String replacement)
使用給定的replacement替換此字串中所有匹配給定的Regex的子字串。
4、擷取
1 package learn; 2 3 /* 4 * 擷取 5 */ 6 import java.util.regex.*; 7 8 class RegexDemo2 9 {10 public static void main(String[] args) 11 {12 get();13 }14 public static void get()15 {16 String str = "ming tian jiu yao fang jia le ,dajia .";17 System.out.println(str);18 String regex = "\\b[a-z]{3}\\b";19 20 //將規則封裝成對象。21 Pattern p = Pattern.compile(regex);22 23 //讓正則對象和要作用的字串相關聯。擷取匹配器對象。24 Matcher m = p.matcher(str);25 26 //System.out.println(m.matches());//其實String類中的matches方法。用的就是Pattern和Matcher對象來完成的。27 //只不過被String的方法封裝後,用起來較為簡單。但是功能卻單一。28 29 //boolean b = m.find();30 // System.out.println(b);31 // System.out.println(m.group());32 while(m.find())33 {34 //使用group方法擷取匹配後的結果。35 System.out.println(m.group());36 //start()和end()方法的傳回值分別表示匹配後的結果在字串上的角標位置。37 System.out.println(m.start()+","+m.end());38 }39 }40 }
字元 x 字元 x \\ 反斜線字元 \0n 帶有八進位值 0 的字元 n (0 <= n <= 7) \0nn 帶有八進位值 0 的字元 nn (0 <= n <= 7) \0mnn 帶有八進位值 0 的字元 mnn(0 <= m <= 3、0 <= n <= 7) \xhh 帶有十六進位值 0x 的字元 hh \uhhhh 帶有十六進位值 0x 的字元 hhhh \t 定位字元 (‘\u0009‘) \n 新行(換行)符 (‘\u000A‘) \r 斷行符號符 (‘\u000D‘) \f 換頁符 (‘\u000C‘) \a 警示 (bell) 符 (‘\u0007‘) \e 轉義符 (‘\u001B‘) \cx 對應於 x 的控制符 字元類 [abc] a、b 或 c(簡單類) [^abc] 任何字元,除了 a、b 或 c(否定) [a-zA-Z] a 到 z 或 A 到 Z,兩頭的字母包括在內(範圍) [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](並集) [a-z&&[def]] d、e 或 f(交集) [a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](減去) [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](減去) 預定義字元類 . 任何字元(與行結束符可能匹配也可能不匹配) \d 數字:[0-9] \D 非數字: [^0-9] \s 空白字元:[ \t\n\x0B\f\r] \S 非空白字元:[^\s] \w 單詞字元:[a-zA-Z_0-9] \W 非單詞字元:[^\w] 邊界匹配器 ^ 行的開頭 $ 行的結尾 \b 單詞邊界 \B 非單詞邊界 \A 輸入的開頭 \G 上一個匹配的結尾 \Z 輸入的結尾,僅用於最後的結束符(如果有的話) \z 輸入的結尾 Greedy 數量詞 X? X,一次或一次也沒有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次,但是不超過 m 次 組和捕獲 擷取的群組可以通過從左至右計算其開括弧來編號。例如,在運算式 ((A)(B(C))) 中,存在四個這樣的組: 1 ((A)(B(C))) 2 \A 3 (B(C)) 4 (C) 組零始終代表整個運算式。
黑馬程式員——java學習16(畢25)——Regex