不明白,能不能解释一下。虽然可以用spilt或者StringTokenizer来解决,但我还是想知道如何用一句正则表达式来解决这个问题。

解决方案 »

  1.   

    楼主还没弄明白 group 的概念
    你这个问题只有当 n 的数值为你所知的情况下才能用group(i)引用
    split是随机引用的(同时也是顺序引用的)最好的解决方法
    如果你是顺序引用,而且非要用到group那只有一种方法
    Pattern p = Pattern.compile("\\d+");
            Matcher m = p.matcher(",323213,3232321,3232321,3213213");
            while (m.find()) {
                System.out.println(m.group());
            }
    这种方法比split也麻烦不少...
      

  2.   

    unit ,?[0-9]+
    match {unit}+用CYGWIN的FLEX,BYACC可以完成匹配,很简单。
      

  3.   

    对付这个恐怕还是Perl简单点, Java的正则表达式没用过 :($str = ",111,234,55555,6,77";
    @substrs =  $str =~ /,\d+/g;
    foreach $token (@substrs)
    {
        print $token;
        print "\n"; 
    }