java中匹配的问题。
比如1月2日,1月三日,1月4日,2月5日等等,
如何匹配1月*日下的所有字符串?
我要求的结果是
1月2日,1月三日,1月4日是这三个结果。

解决方案 »

  1.   

    用到Pattern和Matcher。String str="1月2日";
    String regEx="1月.?日"; Pattern p=Pattern.compile(regEx);
    Matcher m=p.matcher(str);
    boolean result=m.find();
    System.out.println(result);
    这样应该就可以匹配了。
      

  2.   


    private static final String REGEX_DATE = "1月(\\d{1,2}|[一二三四五六七八九十]{1,3})日";

    public static boolean isMatch(String sdate) {
    return sdate.matches(REGEX_DATE);
    }
    //1月2日,1月三日,1月4日,2月5日
    public static void main(String[] args) {
    String[] dateArr = new String[]{"1月2日", "1月三十日", "1月24日", "2月5日"};
    for (String s: dateArr)
    if (isMatch(s))
    System.out.println(s);
    }