package no.priv.garshol.duke.cleaners;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
/**
* Helper class used by AbstractRuleBasedCleaner.
*/
public class Transform {
private Pattern regex;
private String replacement;
private int groupno;
public Transform(String regex, String replacement) {
this(regex, replacement, 1);
}
public Transform(String regex, String replacement, int groupno) {
this.regex = Pattern.compile(regex);
this.replacement = replacement;
this.groupno = groupno;
}
public String transform(String value) {
Matcher m = regex.matcher(value);
if (!m.find())
return value;
return value.substring(0, m.start(groupno)) +
replacement +
value.substring(m.end(groupno), value.length());
}
}