所以,让我说我得到了正则表达式
String regex = "\d*";
查找任何数字。
现在我还有一个输入的字符串,例如
String input = "We got 34 apples and too much to do";
现在我想用“”替换所有数字,这样做:
input = input.replaceAll(regex, "");
现在打印输入时,我得到了“我们得到了苹果而且做得太多了”。它有效,用“”代替了3和4。
现在我的问题:有什么办法 - 也许是现有的lib? - 得到实际被取代的东西?
这里的例子很简单,只是为了理解它是如何工作的。想要将它用于更复杂的输入和正则表达式。
感谢您的帮助。
答案 0 :(得分:2)
您可以将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