Java如何重置正規表示式的模式?

2019-10-16 22:25:24

在Java程式設計中,如何重置正規表示式的模式?

以下範例演示如何使用PatternPattern.compile()方法和Matcher類的m.find()方法來重置正規表示式的模式。

package com.yiibai;

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

public class SplittingString {
    public static void main(String[] args) throws Exception {
        Matcher m = Pattern.compile("[frb][aiu][gx]").matcher("fix the rug with bags");
        while (m.find())
            System.out.println(m.group());
        m.reset("fix the rig with rags");
        while (m.find())
            System.out.println(m.group());
    }
}

上述程式碼範例將產生以下結果 -

fix
rug
bag
fix
rig
rag

範例-2

以下是重新設定正規表示式模式的另一個範例:

package com.yiibai;

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

public class SplittingString2 {
    public static void main(String args[]) {
        Pattern p = Pattern.compile("\\d");
        Matcher mat1 = p.matcher("9652018244");

        while (mat1.find()) {
            System.out.println("\t" + mat1.group());
        }
        mat1.reset();
        System.out.println("After done resetting the Matcher, it should be like this");

        while (mat1.find()) {
            System.out.println("\t" + mat1.group());
        }
    }
}

上述程式碼範例將產生以下結果。

    9
    6
    5
    2
    0
    1
    8
    2
    4
    4
After done resetting the Matcher, it should be like this
    9
    6
    5
    2
    0
    1
    8
    2
    4
    4