繁体   English   中英

获取String.replaceAll()删除的内容

[英]Get what was removed by String.replaceAll()

所以,让我说我得到了正则表达式

String regex = "\d*";

找到任何数字。

现在我也有一个输入的字符串,例如

String input = "We got 34 apples and too much to do";

现在我想用“”替换所有数字,这样做:

input = input.replaceAll(regex, "");

当现在打印输入时,我得到了“我们得到了苹果而且做得太多了”。 它有效,用“”代替了3和4。

现在我的问题:有什么办法 - 也许是现有的lib? - 得到实际被取代的东西?

这里的例子很简单,只是为了理解它是如何工作的。 想要将它用于更复杂的输入和正则表达式。

谢谢你的帮助。

您可以使用具有附加和替换过程的Matcher

String regex = "\\d*";

Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);

StringBuffer sb = new StringBuffer();
StringBuffer replaced = new StringBuffer();
while(matcher.find()) {
    replaced.append(matcher.group());
    matcher.appendReplacement(sb, "");
}
matcher.appendTail(sb);

System.out.println(sb.toString());  // prints the replacement result
System.out.println(replaced.toString()); // prints what was replaced

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM