package com.aspose.words.examples.programming_documents.find_replace;
import java.util.regex.Pattern;
import com.aspose.words.Document;
import com.aspose.words.FindReplaceOptions;
import com.aspose.words.IReplacingCallback;
import com.aspose.words.ReplaceAction;
import com.aspose.words.ReplacingArgs;
import com.aspose.words.examples.Utils;
public class ReplaceWithEvaluator {
private static final String dataDir = Utils.getSharedDataDir(ReplaceWithEvaluator.class) + "FindAndReplace/";
public static void main(String[] args) throws Exception {
Document doc = new Document(dataDir + "Range.ReplaceWithEvaluator.doc");
FindReplaceOptions options = new FindReplaceOptions();
options.ReplacingCallback = new MyReplaceEvaluator();
doc.getRange().replace(Pattern.compile("[s|m]ad"), "", options);
doc.save(dataDir + "Range.ReplaceWithEvaluator_Out.doc");
}
}
class MyReplaceEvaluator implements IReplacingCallback {
private int mMatchNumber;
/**
* This is called during a replace operation each time a match is found.
* This method appends a number to the match string and returns it as a
* replacement string.
*/
public int replacing(ReplacingArgs e) throws Exception {
e.setReplacement(e.getMatch().group() + Integer.toString(mMatchNumber));
mMatchNumber++;
return ReplaceAction.REPLACE;
}
}