使用Java从String中提取任何5位数字

时间:2013-10-07 17:31:44

标签: java regex

我正在尝试使用REGEX从较大的String中提取5位数字。

这是我用来执行此操作的方法,但它只返回null。

public void setCWBudgetCode(String webPage){

    Pattern pattern = Pattern.compile("/\\b\\d{5}\b/g");
    Matcher matcher = pattern.matcher(webPage);
    if (matcher.find())
        this.cwBudgetCode = matcher.group();
}

2 个答案:

答案 0 :(得分:2)

这是问题所在:

Pattern pattern = Pattern.compile("/\\b\\d{5}\\b/g");

而不是使用此pattern

Pattern pattern = Pattern.compile("(\\b\\d{5}\\b)");

与Javascript不同,Java中没有正则表达式分隔符,当然没有/g

另请注意,我在正则表达式周围使用parenthesis,以便您可以使用matcher.group(1)

答案 1 :(得分:2)

您需要更改正则表达式以将号码保存为组Pattern.compile("\\b(\\d{5})\\b");

这将使其与您的group(1)代码

一起使用