Я думаю, что регулярное выражение не очень подходит, если это довольно сложные строки.
Попробуйте просто обернуть его в свой собственный служебный метод, используя массивы или списки в качестве аргументов.
public static String replace(String string, String[] toFind, String[] toReplace) {
if (toFind.length != toReplace.length) {
throw new IllegalArgumentException("Arrays must be of the same length.");
}
for (int i = 0; i < toFind.length; i++) {
string = string.replace(toFind[i], toReplace[i]);
}
return string;
}
Возможно, он уже есть в Apache Commons или в Google Code. Посмотрите, предпочитаете ли вы сторонние API выше доморощенного материала.
Редактировать : почему технически правильное отрицание, но, по вашему мнению, не является предпочтительным ответом? Только не голосуй.