天天看點

java語言基礎(60)——java正規表達式基礎使用

正規表達式各種語言通用,但不同的語言又有細微的差別。是以我們在用正規表達式的時候,一定要仔細了解目前語言中正則的規則。java中 java.util.regex包中的Pattern類說明了java語言中正則的細節。

正規表達式的應用:

判斷  matches

分割  split

替換  replaceAll

擷取  Pattern 與 Matcher合用

package patternDemo;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

class PatternDemo
{
  public static void main(String[] args){
    // 比對判斷 matches
     String reg = "^1[34578]{1}\\d{9}$";
     String phone = "13112341234";
     System.out.println(phone.matches(reg));// true

     // 分割 split
     String abc = "a,b,c";
     String[] abcArr = abc.split(",");
     for(int i = 0;i<abcArr.length;i++){
        System.out.println(abcArr[i]); //輸出 a b c
     }

     // 替換 replaceAll
     String s = "hello123world456";
     String regex = "\\d+";
     String replacement = " ";
     String result = s.replaceAll(regex,replacement);
     System.out.println(result); // hello world

       // Pattern 和 Matcher
     // 使用方法
     // 1 通過Pattern對象擷取matcher對象
     // 2 用matcher對象的擷取功能 find()  start() end() group()
     String findInStr = "hello #world# hello #java# hello #php#";
     // 找出所有的 ## 包圍的字元
     String pattern = "#(\\w+)#";

     Pattern p = Pattern.compile(pattern);
     Matcher m = p.matcher(findInStr);
      
     while(m.find()){
        System.out.print(m.group() +"  "+ m.group(1));
        System.out.println();
     }
     // 比對結果
     /* #world#  world
       #java#  java
       #php#  php  */

    
  }
}