使用模式从字符串中提取数字

时间:2012-08-02 18:26:43

标签: java regex pattern-matching

好的,这就是我所拥有的

  

“C:\此\文件\是\ rev12 \哦\ A_12345 \娃娃\类”

我想从此字符串中仅提取12345

如何使用Java Pattern.compile完成?

2 个答案:

答案 0 :(得分:0)

您应该更一般地定义这个数字是如何出现的。 因此,如果它位于带有前导下划线_的字符串中,并且尾随斜杠\模式将跟随_(\d+)\\

您的号码可以从模式匹配组中提取。 Try it

答案 1 :(得分:0)

下面是您可以使用的代码,但我必须更改反斜杠以在路径中转发斜杠并使用绝对路径。我还尝试更改路径“C:\\ this \\ file \\ is \\ rev12 \\ oh \\ A_12345 \\ doll \\ classes”以在Windows中使用它。您可以将'\'更改为'\\'。路径字符串都适用于以下代码。

File file = new java.io.File("C:/this/file/is/rev12/oh/A_12345/doll/classes").getAbsoluteFile();
    System.out.println(file.getAbsolutePath());

    Pattern pat = Pattern.compile("-?\\d+");
    Matcher mat = pat.matcher(file.getAbsolutePath());
    while (mat.find()) {
      System.out.println(mat.group());
    }