2

我正在尝试使用 REGEX 从较大的字符串中提取 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();
}
4

2 回答 2

2

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

这将使它与group(1)下面的代码一起使用

于 2013-10-07T17:34:28.247 回答
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)

于 2013-10-07T17:32:46.693 回答