FileDocCategorySizeDatePackage
RegexAppend.javaAPI DocExample1629Wed Apr 10 19:58:04 BST 2002com.ronsoft.books.nio.regex

RegexAppend

public class RegexAppend extends Object
Test the appendReplacement() and appendTail() methods of the java.util.regex.Matcher class. Created: Dec 28, 2001
author
Ron Hitchens (ron@ronsoft.com)
version
$Id: RegexAppend.java,v 1.5 2002/04/11 02:58:04 ron Exp $

Fields Summary
Constructors Summary
Methods Summary
public static voidmain(java.lang.String[] argv)

		String input = "Thanks, thanks very much";
		String regex = "([Tt])hanks";
		Pattern pattern = Pattern.compile (regex);
		Matcher matcher = pattern.matcher (input);
		StringBuffer sb = new StringBuffer();

		// loop while matches are encountered
		while (matcher.find()) {
			if (matcher.group(1).equals ("T")) {
				matcher.appendReplacement (sb, "Thank you");
			} else {
				matcher.appendReplacement (sb, "thank you");
			}
		}

		// complete the transfer to the StringBuffer
		matcher.appendTail (sb);

		// print the result
		System.out.println (sb.toString());

		// Let's try that again, using the $n escape in the replacement
		sb.setLength (0);
		matcher.reset();

		String replacement = "$1hank you";

		// loop while matches are encountered
		while (matcher.find()) {
			matcher.appendReplacement (sb, replacement);
		}

		// complete the transfer to the StringBuffer
		matcher.appendTail (sb);

		// print the result
		System.out.println (sb.toString());

		// And once more, the easy way (because this example is simple)
		System.out.println (matcher.replaceAll (replacement));

		// One last time, using only the String
		System.out.println (input.replaceAll (regex, replacement));