Ваш вопрос немного cofusing, но заменить ,')
вам не нужны побеги вообще. Просто используйте
def value = "('cat','rat',',')";
println value.replace(",')", ")"); // ('cat','rat',')
Однако, я думаю, что вы хотите, а этот результат ('cat','rat')
. Правильно?
Если да, то вы можете использовать следующий код, используя Pattern:
import java.util.regex.Pattern
def value = "('cat','rat',',')";
def pattern = Pattern.compile(",'\\)");
def matcher = pattern.matcher(value);
while (matcher.find()) {
value = matcher.replaceAll(")");
matcher = pattern.matcher(value);
}
println value; // ('cat','rat')
Объяснение:
Вы создаете второй сменный текст вашего регулярного выражения, это не там, когда вы пытаетесь заменить его , но get создается в результате первой замены. Таким образом, мы создаем новый матчи в цикле и позволяем ему снова найти строку ...
Попробуйте ['значение.replaceAll (" (, | ^) ',' "," ")'] (http: // ideone.com/9vKmGs), если вы хотите удалить все значения, равные '', ''как с начала строки, так и внутри нее. –