/ / java: użyj wyrażenia regularnego, aby wyodrębnić liczbę w ciągu - java, regex, dopasowanie

java: użyj wyrażeń regularnych, aby wyodrębnić liczbę w ciągu znaków - java, regex, matching

Mam ciąg formatu „[232] .......” Chcę wyodrębnić 232 z ciągu, zrobiłem to

public static int getNumber(String str) {
Pattern pattern = Pattern.compile("\[([0-9]+)\]");
Matcher matcher = pattern.matcher(str);
int number = 0;
while (matcher.find()) {
number = Integer.parseInt(matcher.group());
}
return number;
}

ale to nie działa, mam następujący wyjątek:

Exception in thread "main" java.lang.NumberFormatException: For input string: "[232]"

Ktoś wie, jak mogę rozwiązać ten problem i czy istnieje bardziej skuteczny sposób na wykonanie tego rodzaju dopasowywania wzorców w java?

Odpowiedzi:

6 dla odpowiedzi № 1

group() bez żadnych parametrów zwraca całe dopasowanie (odpowiednik group(0)). Obejmuje to nawiasy kwadratowe określone w wyrażeniu regularnym.

Aby wyodrębnić liczbę, podaj 1 aby zwrócić tylko pierwszą grupę przechwytywania w wyrażeniu regularnym ( ([0-9]+)):

number = Integer.parseInt(matcher.group(1));