正則表示式的常見功能(作用)
阿新 • • 發佈:2018-12-28
1. 字串的匹配功能
2. 字串的切割功能
3. 字串的替換功能
4. 字串的獲取功能
匹配功能 String的matches方法
public static void main(String[] args) {
// 匹配手機號碼是否正確
String phone = "15228119181";
String regex = "1[345789]\\d{9}";
boolean matches = phone.matches(regex);
}
切割功能 String的split(String regex)根據給定的正則拆分字串 public static void main(String[] args) { // 分割手機號的每一位數字 String phone = "15228119181"; String regex = ""; String[] split = phone.split(regex); System.out.println(Arrays.toString(split)); } 結果: [1, 5, 2, 2, 8, 1, 1, 9, 1, 8, 1] public static void main(String[] args) { // 切割獲取每一個單詞(去除空格) String phone = "are you ok !"; String regex = "\\p{Space}+"; String[] split = phone.split(regex); System.out.println(Arrays.toString(split)); } 結果: [are, you, ok, !] 這裡有一個對split方法理解不正確的用法,要注意: public static void main(String[] args) { // 切割獲取每一個單詞(去除.) String phone = "are.you.ok !"; //split方法傳入的是正則,所以傳入引數應該為 \\. 用來轉義.符號 String regex = "."; String[] split = phone.split(regex); //這樣切割出來什麼都沒有 System.out.println(Arrays.toString(split)); } 結果: []
替換功能 String類的replaceAll(String regex,String replacement) 將.替換成空格 public static void main(String[] args) { String english = "are.you.ok !"; String regex = "\\."; String s = english.replaceAll(regex, " "); System.out.println(s); } 結果: are yuo ok ! 將中間的0替換成* public static void main(String[] args) { String phone = "15800001111"; String s = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); System.out.println(s); } 結果: 158****1111
獲取功能 public static void main(String[] args) { // 獲取3個字母組成的單詞 // 將正則封裝成物件 Pattern p = Pattern.compile("\\b[a-z]{3}\\b"); // 指定要匹配的字串 Matcher m = p.matcher("da jia hao ming tian bu fang jia!"); // 獲取匹配的資料 while (m.find()) { System.out.println(m.group()); } }