java_Pattern/Matcher

91 阅读1分钟
public static void main(String[] args) {
        Pattern p = Pattern.compile("(\\d+)([A-Z]+)");  // 分成了两组:数字和字母
        Matcher matcher = p.matcher("33HH44JJ");

        // 整个字符串都要匹配正则表达式才为true
    	// 如果只有前半部分匹配成功,下标将移动到下次要匹配的位置,调用下行的方法后,再调用find()方法只能找到一个匹配的子串44JJ
        // System.out.println(matcher.matches()); 

        if (matcher.find()){ // 找到一个匹配的子串,下标将移动到下次要匹配的位置
            System.out.println("匹配第一个子串");          // 33HH
            System.out.println(matcher.group(0));       // 输出第一个子串的所有内容:33HH
            System.out.println(matcher.group(1));       // 输出第一个子串的第一组:33
            System.out.println(matcher.group(2));       // 输出第一个子串的第二组:HH
        }

        if (matcher.find()){    
            System.out.println("匹配第二个子串");         // 44JJ
            System.out.println(matcher.group(0));      // 输出第二个子串的所有内容:44JJ
            System.out.println(matcher.group(1));      // 输出第二个子串的第一组:44
            System.out.println(matcher.group(2));      // 输出第二个子串的第二组:JJ
        }

    }