一个数字。
可以是两位也可以是一位
如果是一位。那这一位就不能是0
如果是两位,那第一位可以是0,这时第二位就不能是0
如果第一位不是0,第二位就可以是0。怎么写啊???

解决方案 »

  1.   

    给你一篇儿资料,自己看嘛^
    正则表达式概述:
    一个正则表达式可以由普通字符或元字符组合而成。元字符指具有特殊意义的字符。
    正则表达式入门:
    表达式 说明 使用例
    ^ 匹配一行的开头。 例:1,^hello。匹配行头以hello开头的字符串。
    $ 匹配一行的结尾 例:1,hello$。匹配行尾以hello结尾的字符串。
    . 匹配改行以外的任何字符 例:1,hello.world。匹配诸如hello world,hello-world等字符串。
    [] 匹配被括起来的任何一个字符 例:1,[abc]。匹配a或者b或者c。
        2,r[aeu]d。匹配rad或red或rud。
    [A-Z] 匹配从A-Z的任一个字符。 例:1,a[A-Z]c。匹配aAc,aBc,...,aZc。
    [a-z] 匹配从a-z的任一个字符。 例:1,a[a-z]c。匹配aac,abc,...,azc。
    [0-9] 匹配从0-9的任一个数字。 例:1,a[0-9]c。匹配a0c,a1c,...,a9c。
    [^] 匹配任何没有被括起来的一个字符。与[]相左。 例:1,[^abc]。则匹配除a或b或c以外的其他字符。
    * 匹配*前面的一个字符任意次数(0到多次)。 例:1,ab*。则匹配a或ab或abb,abbb等
    + 匹配+前面一个字符1到多次。 例:1,ab+。则匹配ab或abb或abbb,abbbb等
    ? 匹配?前面一个字符0到1次。 例:1,ab?。则匹配a或ab。
    {n} 匹配之前一个字符n次。n为整数。 例:1,ab{2}。则匹配abb。
    {n,} 匹配之前一个字符n次或大于n次。n为整数。 例:1,ab{2,}。则匹配abb,abbb等。
    {n,m} 匹配之前一个字符大于等于n次,小于等于m次。n,m为整数。 例:1,ab{2,5}。则匹配abb,abbb,abbbb,abbbbb。
    |  匹配条件的或(OR)运算。匹配之前的运算式或匹配之后的运算式。 例:1,hello|world。则匹配hello或者world。
    () 分组。被()括起来的运算式被看作为一组(group)。可以用1,9来加以引用。
    JAVA里的正则表达式:
    JAVA里有以下几个方法或类跟正则表达式的处理有关。
    String.matches(regex)
    String.replaceAll(regex, value)
    java.util.regex.Matcher
    java.util.regex.Pattern
    下面我们举例来具体加以说明。
    例1:
    判断是否为数字
    //判断是否为数字,返回值为true
    System.out.println("12345".matches("[0-9]+"));
    //判断是否为数字,返回值为false
    System.out.println("12345a".matches("[0-9]+"));
    例2:
    判断是否为email地址
    //匹配所有数字,大小写字母,下画线,横线的字符组合
    String segnamePtn = "[0-9a-zA-Z_-]+";
    //匹配.com或.org
    String suffixPtn = "\\.((com)|(org))";
    //email的正则表达式
    String emailPtn = segnamePtn + "@" + segnamePtn + suffixPtn;//判断是否为email,返回false
    System.out.println("12345".matches(emailPtn));
    //判断是否为email,返回true
    System.out.println("[email protected]".matches(emailPtn));
    //判断是否为email,返回false。因为不是以.com或.org结尾
    System.out.println("x21@syboos".matches(emailPtn));
    例3:
    匹配并替换:<a href="#{url}" target="#{target}">this is a test</a>,将其中#{url},#{target}分别替换为url,target。
        //#{xxx}->xxx
        private String matchReplace(String value) {
            String ret = value;        String patternRegex = "(#\\{(.*?)\\})";//#{xxx}        Pattern pattern = Pattern.compile(patternRegex);
            Matcher matcher = pattern.matcher(value);        String expression = null;
            String tagname = null;
            if(matcher.find()){
                int group = matcher.groupCount();
                if (group == 2) {
                    expression = matcher.group(1); //取得#{xxx}
                    tagname = matcher.group(2);    //取得xxx        //替换#{xxx}->xxx
                    ret = value.replaceAll("\\Q" + expression + "\\E", tagname);
                }
            }
            if (!ret.equals(value)) {
                ret = matchReplace(ret);
            }        return ret;
        }
    测试代码:
    System.out.println(
                matchReplace("<a href=\"#{url}\" target=\"#{target}\">this is a test</a>")
                );
    *输出:*
    <a href="url" target="target">this is a test</a>
    取出第一个英文单词:
                String str="firstSecondThird";
                String patternRegex = "^([a-z]*?)([A-Z]{1}[a-zA-Z]*)";
                Pattern pattern = Pattern.compile(patternRegex);
                Matcher matcher = pattern.matcher(str);
                String firstWord = null;            String otherWords = null;
                if(matcher.find()){
                    int group = matcher.groupCount();
                    if (group != 2) {
                        return;
                    }                firstWord = matcher.group(1);
                    otherWords = matcher.group(2);            }            System.out.println(firstWord + "+" + otherWords);
    输出:
    first+Second+Third
    以下例子:取出每一个单词(单词头字母以大写或小写开头并以小写或数字结尾)
    String str="firstSecondThird";
    String patternRegex = "([a-zA-Z]
    {1}([a-z0-9]\*)?)";
    Pattern pattern = Pattern.compile(patternRegex);
    Matcher matcher = pattern.matcher(str);
    String words = "";
    while(matcher.find())
    { words += matcher.group(1) + ","; }System.out.println("----");
    System.out.println(words);
    System.out.println("----");
    输出:
    first,Second,Third,
      

  2.   

    顶一下2楼的,可以用
        String[] ss = new String[] {"0","1","01","11","10","00"};
        for (String s : ss) {
          System.out.println(s + "=" + s.matches("^([1-9]{1}|[0-9]{1}[1-9]{1}|[1-9]{1}[0-9]{1}){1}$"));
        }
    输出为
    0=false
    1=true
    01=true
    11=true
    10=true
    00=false
      

  3.   

    public class Test {    
        public static void main(String[] args) {
            String[] strs = {"0", "1", "01", "11", "10", "00"};
            String str = "\\d((?<!0)|(?=[1-9]))\\d?";
            for(String s : strs) {
                System.out.println(s + " " + s.matches(str));
            }
        }
    }0 false
    1 true
    01 true
    11 true
    10 true
    00 false
      

  4.   

    也来玩玩String[] str = { "0", "1", "01", "11", "10", "00", "abc", "100" };
    String regex = "^([\\d&&[^0]]|[\\d][\\d&&[^0]]|[\\d&&[^0]][\\d])$";
    for (String input : str) {
        System.out.println(input + ":" + input.matches(regex));
    }/*
    0:false
    1:true
    01:true
    11:true
    10:true
    00:false
    abc:false
    100:false
    */