使用
$n(其中n是数字)来引用中捕获的子序列
replaceFirst(...)。我假设您想用文字字符串
“ number” 替换第一组,并用第一组的值替换第二组。
Pattern p = Pattern.compile("(\d)(.*)(\d)");String input = "6 example input 4";Matcher m = p.matcher(input);if (m.find()) { // replace first number with "number" and second number with the first String output = m.replaceFirst("number "); // number 46}
考虑
(D+)第二组而不是
(.*)。
*是一个贪婪的匹配器,首先会消耗最后一位。当匹配器意识到最终的
(d)匹配项时,匹配器将不得不回溯,然后才可以匹配最终的数字。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)