Mercurial > public > html2wiki
view src/org/nwoca/ssdt/tools/html2wiki/ReplaceTransformer.java @ 17:a88e2f8fb117 tip
added a replace transformer to remove ;) smilies
author | ferrall@nwoca.org |
---|---|
date | Tue, 08 Feb 2011 09:27:40 -0500 |
parents | 8f23347884c0 |
children |
line wrap: on
line source
package org.nwoca.ssdt.tools.html2wiki; import java.util.regex.*; class ReplaceTransformer implements Transformer { private Pattern replace; private String replacement; private int replaceGroup; /** * ReplaceTransform to replace the entire regex. * * @param regex * @param replacement */ public ReplaceTransformer(String regex, String replacement) { this(regex,replacement,0); } /** * ReplaceTransform to replace a specific group in the Regex. * * @param regex * @param replacement * @param replaceGroup group to replace */ public ReplaceTransformer(String regex, String replacement, int replaceGroup) { replace = Pattern.compile(regex); this.replacement = replacement; this.replaceGroup = replaceGroup; } public void apply(StringBuffer buffer) { Matcher matcher = replace.matcher(buffer); int start = 0; while (matcher.find(start)) { if (replaceGroup == 0) { buffer.replace(matcher.start(),matcher.end(),replacement); start = matcher.start() + replacement.length(); } else { String t = ""; for (int i = 1; i < matcher.groupCount() + 1 ; i++) { if (i != replaceGroup) { t += matcher.group(i); } else { t += replacement; } } buffer.replace(matcher.start(),matcher.end(),t); start = matcher.start() + t.length(); } } } public String toString() { return "Replace: " + replace.pattern() + " with " +replacement; } }