regex
Matcher.appendReplacement example
With this example we are going to demonstrate how to use Matcher.appendReplacement(StringBuffer sb, String replacement)
API method to append to a StringBuffer the result of a Matcher. In short, to use a StringBuffer to append a Matcher’s result you should:
- Compile a given String regular expression to a Pattern, using
compile(string regex)
API method of Pattern. - Use
matcher(CharSequence input)
API method of Pattern to create a Matcher that will match the given String input against this pattern. - Create a new StringBuffer.
- Find the next subsequence of the input sequence that matches the pattern, with
find()
API method of Matcher and append it to the StringBuffer, implementing a non-terminal append-and-replace step, usingappendReplacement(StringBuffer sb, String replacement)
API method of Matcher.
Let’s take a look at the code snippet that follows:
package com.javacodegeeks.snippets.core; import java.util.regex.Matcher; import java.util.regex.Pattern; public class AppendReplacement { public static void main(String args[]) { Pattern pattern = Pattern.compile("(another) (test)"); StringBuffer sb = new StringBuffer(); String candidateString = "This is another test."; String replacement = "$1 AAA $2"; Matcher m = pattern.matcher(candidateString); m.find(); m.appendReplacement(sb, replacement); String msg = sb.toString(); System.out.println(msg); } }
Output:
This is another AAA test
This was an example of how to Matcher.appendReplacement(StringBuffer sb, String replacement)
API method in Java.