java正则表达式从字符串中分隔数字

时间:2010-09-08 10:18:51

标签: java regex

我有类似的字符串:

BLAH00001

DIK-11

DIK-2

MAN5

所以所有的字符串都是(序列中的任何字符)+(数字序列)

我想要这样的东西:

1

11

2

5

为了得到那些整数值,我想把char序列和数字序列分开,做Integer.parseInt(number_sequence)

之类的事情

有什么东西可以完成这项工作吗?

问候

4 个答案:

答案 0 :(得分:4)

试试这个:

public class Main {
    public static void main(String[]args) {
        String source = "BLAH00001\n" +
                "\n" +
                "DIK-11\n" +
                "\n" +
                "DIK-2\n" +
                "\n" +
                "MAN5";
        Matcher m = Pattern.compile("\\d+").matcher(source);
        while(m.find()) {
            int i = Integer.parseInt(m.group());
            System.out.println(i);
        }
    }
}

产生:

1
11
2
5

答案 1 :(得分:2)

String[] a ={"BLAH00001","DIK-11","DIK-2","MAN5"};
 for(String g:a)
  System.out.println(Integer.valueOf(g.split("^[A-Z]+\\-?")[1]));

 /*******************************  
   Regex Explanation :
     ^  --> StartWith
    [A-Z]+ --> 1 or more UpperCase
    \\-? --> 0 or 1 hyphen   
*********************************/

答案 2 :(得分:1)

 Pattern p = Pattern.compile("^[^0-9]*([0-9]+)$");
 Matcher m = p.matcher("ASDFSA123");
 if (m.matches()) {
    resultInt = Integer.parseInt(m.group(1)));
 }

答案 3 :(得分:0)