我有一個像這樣的字符串"4 + 5 = 9;"
,我想爲找到的每個號碼添加一個。在Java 8中,Regex-replace-with-function-evaluation等價於什麼?
我想爲每個匹配使用正則表達式和轉換函數。
我知道如何在Java中執行它< = 7.它在javadoc和this answer中。
我想知道是否有在Java中新的東西這個8
編輯: 這是我最好的嘗試:
private static String regexTransform(String regex, String input,
Function<String, String> function) {
Matcher m = Pattern.compile(regex).matcher(input);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, function.apply(m.group()));
}
m.appendTail(sb);
return sb.toString();
}
String res = regexTransform("[0-9]+", "4 + 5 = 9;", s-> String.valueOf(Long.parseLong(s) + 1));
System.out.println(res); // 5 + 6 = 10
看起來不像有在Java 8文檔(http://download.java.net/jdk8/docs/api/java什麼新的東西/util/regex/Matcher.html)。 – arshajii
看起來不錯,認爲它是正確的做法。 – aepurniet