如何用正则表达式验证字符串:
    String s = "2011\10\19"; 格式是否合法?java中用\\\\表示一个\字符 为什么这样写验证规则:
    String pat = "\\d{4}\\\\\\d{2}\\\\\\d{2}"; 运行不正确

解决方案 »

  1.   

    在正则匹配时“\”是转义符
    String s = "2011\10\19"需要写成String s = "2011\\10\\19"才可以
      

  2.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class TestRegex {
    public static void main(String[] args) {
    String s = null;
    Matcher matcher = null;
    String pat = "\\d{4}\\\\\\d{2}\\\\\\d{2}";
    Pattern pattern = Pattern.compile(pat); s = "2011\10\19";
    matcher = pattern.matcher(s);
    while (matcher.find()) {
    System.out.println(matcher.group());
    } s = "2011\\10\\19";
    matcher = pattern.matcher(s);
    while (matcher.find()) {
    System.out.println(matcher.group());
    }
    }
    }