Это регулярное выражение не похоже на заменить все, кроме первого , потому что у нас есть некоторые исключительные требования ....
Код дан ... Мне нужно предоставить регулярное выражение и java replaceAll
функция ....
Заданный код:
String regex = "write regex here";
Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Scanner in = new Scanner(System.in);
int numSentences = Integer.parseInt(in.nextLine());
while (numSentences-- > 0) {
String input = in.nextLine();
Matcher m = p.matcher(input);
// Check for subsequences of input that match the compiled pattern
while (m.find()) {
input = input.replaceAll("write regex", "wirte replace");
}
// Prints the modified sentence.
System.out.println(input);
}
Ввод:
2
Goodbye bye bye world world world
tim tamtim tam tam ta tam tam
Вывод :
Goodbye bye world
tim tamtim tam ta tam
Я пробовал это: (?:(\\b\\w+\\b).*)(\\b\\1\\b)
и input.replaceAll(m.group(),m.group(1))
... но это не работает для 2-го случая ... Я могу изменить только эти строки .. Может кто-нибудь помочь me.thanks