我正在尝试使用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();
}
答案 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)
代码