1. 程式人生 > 實用技巧 >java正則表達

java正則表達

1.1 正則表示式的匹配規則

正則表示式中明確區分大小寫字母。

public static void main(String[] args) {
    //描述規則
    /*11位的手機號碼,
    第1位為1,第2位為3、4、5、7、8中的一個,
    後面9位為0到9之間的任意數字。*/
    String reg="[1][34578][0-9]{9}";//如果一位可以去中括號
    String phone="15275971792";
    boolean f=phone.matches(reg);
    System.out.println(f);
    //0不能開頭,5-15位
String qq="[1-9][0-9]{4,14}"; String me="1416413863"; boolean q=me.matches(qq); System.out.println(q); //郵箱:qq號@qq.com String r="[1-9a-zA-Z][\\w]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+"; //String r="[1-9a-zA-Z][0-9a-zA-Z_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+"; String email="[email protected]";
boolean em=email.matches(r); System.out.println(em); }

字串類中涉及正則表示式的常用方法

l public boolean matches(String regex) //判斷字串是否匹配給定的規則

校驗qq號碼.
    1: 要求必須是5-15位數字
    2: 0不能開頭
程式碼:
    String qq = "604154942";
    String regex = "[1-9][0-9]{4,14}";
    boolean flag2 = qq.matches(regex);

l public String[] split

(String regex) //根據給定正則表示式的匹配規則,拆分此字串

分割出字串中的的數字
程式碼演示:
String s = "18-22-40-65";
    String regex = "-";
    String[] result = s.split(regex);
程式碼演示:
    String s = "18 22 40 65";
    String regex = " ";
    String[] result = s.split(regex);
    
String ip="192.168.1.171";
    String reg="\\.";
    String[] strs=ip.split(reg);
    for(int i=0;i<strs.length;i++){
        System.out.println(strs[i]);
    }

l public String replaceAll(String regex,String replacement) //將符合規則的字串內容,全部替換為新字串

舉例:把文字中的數字替換成*
程式碼演示:
    String s = "Hello12345World6789012";
    String regex = "[0-9]";
    String result = s.replaceAll(regex, "*");
String str="hello123a5aa6bb78";
    String reg="[0-9]";
    String s=str.replaceAll(reg, "*");
    System.out.println(s);