200901-三沙-气温气压湿度.xls
200905-北茭-风.xls说明:
“6位阿拉伯数字日期”-“2到5个汉字”-“1到8个汉字”.xls类似上面给出的例子,怎么写java正则表达式?谢谢!!

解决方案 »

  1.   

     
       public static void main(String[] s){
         String str = "200901-三沙-气温气压湿度.xls";
         Pattern p = Pattern.compile("^\\d{6}\\-[\u0391-\uFFE5]{2,5}\\-[\u0391-\uFFE5]{1,8}\\.xls$");
         Matcher m = p.matcher(str);
         System.out.println(m.matches());
        }
      

  2.   

    试试这个吧
    public static void main(String[] args) 
        {
         String str = "200901-三沙-气温气压湿度.xls";
         String regex = "\\d{6}-[\\u4e00-\\u9fa5]{2,5}-[\\u4e00-\\u9fa5]{1,8}\\.xls";
        
         System.out.println(str.matches(regex));
        
        }
      

  3.   

    \d{6}-\d{5,[\u4E00-\u9FA5]}-\d{8,[\u4E00-\u9FA5]}肯定不对 但写出来  大家都看看 
      

  4.   


    这个js脚本 如果他输入200910-2-张三.xls
    如果他输入的是2-5个汉字 1-8个汉字
      

  5.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class RegexTest {
      public static void main(String[] args){
      String regex="^([1-9][0-9]{3})" +
       "(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))" +
       "-[\u4E00-\u9FFF]{2,5}-[\u4E00-\u9FFF]{1,8}$";
      String[] strs={"20091117-问题-真难","20091117-哈哈哈哈哈-嘿",
       "00091117-问题-真难","2a091117-哈哈哈-嘿哈哈",
       "1009117-哈哈哈-嘿哈哈","10091117-哈-嘿哈哈",
       "10091117-哈哈哈哈哈哈-嘿哈哈","10091117-哈哈哈哈哈-嘿哈哈嘿哈哈嘿哈哈",
       "10091117-哈哈哈哈哈-嘿哈哈嘿哈哈嘿哈"};
      Pattern p=Pattern.compile(regex);
      Matcher m=null;
      for(String str:strs){
      m=p.matcher(str);
      if(m.matches())
      System.out.println("true");
      else
      System.out.println("false");
      }
      
      }
    }我可能测试的不怎么全,你自己先测试下,不行了在告诉我。
      

  6.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
      <script>
    var pattern = /^(\d{6})-[\u0391-\uFFE5]{2,5}-[\u0391-\uFFE5]{1,8}.xls/; 
    alert(pattern.test('200902-你可以-自己再测试下.xls'));
      </script> 
     </BODY>
    </HTML>
      

  7.   

    boolean b = a.matches("[0-9]{6}-[\\u4e00-\\u9fa5]{2,6}-[\\u4e00-\\u9fa5]{1,8}\\.xls");
    System.out.println(b);
      

  8.   

    狂汗,原来是6位,我还一直琢磨闰月的事呢,崩溃!public class RegexTest {
    public static void main(String[] args) {
    String regex = "^([1-9][0-9]{3})(0[1-9]|1[012])"
    + "-[\u4E00-\u9FFF]{2,5}-[\u4E00-\u9FFF]{1,8}$";
    String[] strs = {"200911-问题-真难", "200911-哈哈哈哈哈-嘿",
    "000911-问题-真难", "2a0911-哈哈哈-嘿哈哈", "10091-哈哈哈-嘿哈哈",
    "100911-哈-嘿哈哈", "100911-哈哈哈哈哈哈-嘿哈哈",
    "100911-哈哈哈哈哈-嘿哈哈嘿哈哈嘿哈哈", "200902-哈哈哈-嘿哈哈嘿哈哈嘿" };
    Pattern p = Pattern.compile(regex);
    Matcher m = null;
    for (String str : strs) {
    m = p.matcher(str);
    if (m.matches())
    System.out.println("true");
    else
    System.out.println("false");
    }
    }
    }
      

  9.   

    话说,年份0开头没什么不可以啊……^\\d{4}((0[1-9])|(1[0-2]))-[\\u4e00-\\u9fa5]{2,5}-[\\u4e00-\\u9fa5]{1,8}\\.xls$