/ / Как да извлечем число от низ с помощта на regex в java - java

Как да извлечете число от низа, използвайки регекс в java - java

Опитах да използвам

title.substring(title.lastIndexOf("(") + 1, title.indexOf(")"));

Искам само да извличам година като 1899.

Той работи добре за низ като "hadoop (1899)", но хвърля грешки за низ "hadoop (прежда) (1980)"

Отговори:

0 за отговор № 1

Здравейте, чек това пример. Това е regex за извличане на числа, заобиколени от скоби.

Тук можете да използвате използвания код:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

final String regex = "(?<=\()\d+(?=\))";
final String string = ""hadoop (1899)"  "hadoop(yarn)(1980)"";

final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}

0 за отговор № 2

Просто заменете всички, с изключение на цифрите в скоби, с regex

String foo = "hadoop (1899)"; // or "hadoop(yarn)(1980)"
System.out.println(foo.replaceAll(".*\((\d+)\).*", "$1"));