我尝试过使用
title.substring(title.lastIndexOf("(") + 1, title.indexOf(")"));
我只想提取像1899年一样的年份。
适用于像“hadoop(1899)”这样的字符串,但是字符串“hadoop(yarn)(1980)”会出错...
答案 0 :(得分:0)
只需用正则表达式替换除括号内的所有数字
String foo = "hadoop (1899)"; // or "hadoop(yarn)(1980)"
System.out.println(foo.replaceAll(".*\\((\\d+)\\).*", "$1"));
答案 1 :(得分:0)
嗨检查this示例。这是用于提取括号括起来的数字的正则表达式。
以下是可以使用的可用代码:
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));
}
}