1. 程式人生 > 實用技巧 >java regular expression

java regular expression

Attention

Example

matches() 嘗試匹配整個字串  

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

public class Test {
    public static void main(String[] args) {
        Pattern pattern1 = Pattern.compile("\\w+"); // \w : 字母、數字、下劃線
        Matcher matcher = pattern1.matcher("my_cat_is_sitting_on_the_mat");
        System.out.println(matcher.matches()); // true
    }
}

find() 查詢是否有子串匹配 , find()方法可以多次使用

public static void main(String[] args) {
        Pattern pattern1 = Pattern.compile("cat");
        Matcher matcher = pattern1.matcher("my_cat_is_sitting_on_the_mat");
        System.out.println(matcher.matches()); // false

        System.out.println(matcher.find()); // true
    }

find() group()



replaceAll() && replaceFirst()

 @Test
    public void test2(){
        Pattern pattern = Pattern.compile("[0-9]");
        Matcher matcher = pattern.matcher("I have 3000 dollars.");
        
        String string = matcher.replaceAll("*");
        System.out.println(string); // I have **** dollars.
    }

@Test
    public void test2(){
        Pattern pattern = Pattern.compile("[0-9]");
        Matcher matcher = pattern.matcher("I have 3000 dollars.");

        String string1 = matcher.replaceFirst("*");
//        String string = matcher.replaceAll("*");
        System.out.println(string1); // I have *000 dollars.

split


@Test
    public void testSplit(){
        String str = "1,2,3,4,5";
        String[] split = str.split(",");
        System.out.println(Arrays.toString(split));  // [1, 2, 3, 4, 5]
    }

    @Test
    public void testSplit2(){
        String str = "1ada4dfs6fdfs78sdesf";
        String[] split = str.split("[a-z]+"); // here don't use *, or you'll have : [1, , 4, , 6, , 7, 8]
        System.out.println(Arrays.toString(split)); // [1, 4, 6, 78]
    }