[Java 11] 正则表达式-入门

Pattern 类的常用方法

1, public static Pattern compile(String regex)   普通  指定正则表达式的规则
2, public Matcher matcher(CharSequence input)      返回 Matcher 类实例
3, public String[] split(CharSequence input)               字符串拆分

Matcher 类常用方法

<strong>public boolean matches()   执行验证
public String replaceAll(String replacement)             字符串替换</strong>

判断字符串是否由数字组成 

RegexDemo02

package com.qunar.basicJava.javase.p11CommonlyUsedClass.regex;

import java.util.regex.Pattern;

/**
 * Author: libin.chen@qunar.com  Date: 14-6-4 17:20
 */
public class RegexDemo02 {
    public static void main(String[] args) {
        String str = "1234567890";
        if (Pattern.compile("[0-9]+").matcher(str).matches()) {
            System.out.println("由数字组成");
        }
        else {
            System.out.println("不是由数字组成的");
        }
    }
    // Pattern 类 : 正则表达式的正则规范
    // Matcher 类 : 正则表达式的执行规范
}
RegexDemo03
package com.qunar.basicJava.javase.p11CommonlyUsedClass.regex;

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

/**
 * Author: libin.chen@qunar.com  Date: 14-6-4 20:23
 */
public class RegexDemo03 {
    public static void main(String[] args) {
        String str = "1983-07-27";
        String pat = "\\d{4}-\\d{2}-\\d{2}";
        Pattern pattern = Pattern.compile(pat);
        Matcher matcher = pattern.matcher(str);
        if (matcher.matches()) {
            System.out.println("日期合法");
        } else {
            System.out.println("日期不合法");
        }

        String str2 = "A1B22C333D4444E55F";
        String pat2 = "\\d+";
        Pattern pattern2 = Pattern.compile(pat2);
        String s[] = pattern2.split(str2);
        for (String string : s) {
            System.out.print(string + "\t");
        }

        Matcher matcher1 = pattern2.matcher(str2);
        String newString = matcher1.replaceAll("--");
        System.out.println(newString);
    }
}
Spring 对正则表达式的支持
package com.qunar.basicJava.javase.p11CommonlyUsedClass.regex;

/**
 * Author: libin.chen@qunar.com  Date: 14-6-5 09:04
 */
public class RegexDemo06 {
    public static void main(String[] args) {
        String str1 = "A1B22C333D4444E55F".replaceAll("\\d+", "_");
        boolean temp = "1983-07-27".matches("\\d{4}-\\d{2}-\\d{2}");
        String s[] = "A1B22C33D44E55F".split("\\d+");
        System.out.println(str1);
        System.out.println(temp);
        for (String s1 : s) {
            System.out.print(s1 + "\t");
        }

    }
}
如果 String 能解决,其实,使用 String 可能更简单,简化代码。

posted @ 2014-06-04 21:09  小尼人00  阅读(215)  评论(0编辑  收藏  举报