# Java 正则表达式查找/替换 ## Java正则表达式教程 - Java正则表达式查找/替换 我们可以找到一个模式,并用一些文本替换,替换的文本取决于匹配的文本。 在Java中,我们可以在Matcher类中使用以下两个方法来完成这个任务。 \`\`\` Matcher appendReplacement(StringBuffer sb, String replacement) StringBuffer appendTail(StringBuffer sb) \`\`\` ## 例子 假设我们有以下文本。 \`\`\` We have 7 tutorials for Java, 2 tutorials for Javascript and 1 tutorial for Oracle. \`\`\` 我们想在以下规则中将数字更改为文本。 - 如果多于5,更换多 - 如果小于5,请更换少量 - 如果是1,替换为"只有一个" 更换后,上面的句子是 \`\`\` We have many tutorials for Java, a few tutorials for Javascript and only one tutorial for Oracle. \`\`\` 要找到所有数字,我们可以使用 \`\\b\\d+\\b\`。\` \\b \`标记单词边界。 以下代码显示如何使用正则表达式和appendReplacement()和appendTail()方法 \`\`\`java import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String\[\] args) { String regex = "\\\\d+"; StringBuffer sb = new StringBuffer(); String replacementText = ""; String matchedText = ""; String text = "We have 7 tutorials for Java, 2 tutorials for Javascript and 1 tutorial for Oracle."; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(text); while (m.find()) { matchedText = m.group(); int num = Integer.parseInt(matchedText); if (num == 1) { replacementText = "only one"; } else if (num \< 5) { replacementText = "a few"; } else { replacementText = "many"; } m.appendReplacement(sb, replacementText); } m.appendTail(sb); System.out.println("Old Text: " + text); System.out.println("New Text: " + sb.toString()); } } \`\`\` 尝试一下 上面的代码生成以下结果。 !\[img\](https://atts.w3cschool.cn/attachments/jimg/java_regular_expression/EXAMPLE__1D2D2231447902BB9D5C.png)