我只会简单的
^.*((?<!\\d)\\d+).*$ 是求字符串里面的最后一个数字现在的麻烦是,类似下面的字符串
R2: ST:3,UL:0,DL:21,U:0,S:4
我希望能获取第n个数,虽然写字符串解析函数也可以实现,但正则表达式更加灵活、更加拉风盼哪位给个答案,偶顺便学习一下

解决方案 »

  1.   

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test1 {    public static void main(String[] args) throws Exception {
            String str = "R2:ST:3,UL:0,DL:21,U:0,S:4";
            int index = 4;
            String regex = "^(?:[^0-9]*([0-9]+)){" + index + "}";
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(str);
            while(matcher.find()) {
                System.out.println(matcher.group(1));
            }
        }
    }PS:正则表达式不是拉风用的!
      

  2.   


    thanks for prompt answer~!果然很拉风万谢