需要Java regEx来读取字符串中的数字

时间:2012-08-21 10:27:19

标签: java regex

我有许多不同的字符串,如下所示:

  • 1
  • 1,2
  • 1 2
  • 1和2
  • 1,2和3
  • 1,93

那就是: - 单个数字(可能是多个数字) - 由'和',逗号或空格分隔的序列

我想写一个Reg Ex来拉回字符串的数字位。我以为这样的事情会起作用:

Pattern.compile("^(?:(\\d+)[^\\d]+)*$");

这个想法是它应匹配并捕获数字序列,跳过多个非数字字符并重复

2 个答案:

答案 0 :(得分:3)

你不只是在这里做数字匹配吗?:

    String str = "1, 2 and 3, 93";

    Matcher m = Pattern.compile("\\d+").matcher(str);
    while (m.find()) {
        System.out.println(m.group(0));
    }

答案 1 :(得分:0)

为什么不匹配“\ d +”?

public class SO {

    public static void main(String[] args) {
        String s = "13, 23 and 33";
        Pattern p = Pattern.compile("(\\d+)");
        Matcher m =  p.matcher(s);
        List<Integer> result = new ArrayList<Integer>();
        while (m.find()) {
            result.add(new Integer(m.group()));
        }
        System.out.println(result);
    }
}

打印出来

[13, 23, 33]