Недавно я работал над проблемой удаления повторяющихся слов в строке, то есть «я хорош» становится «я хорош». Но я заметил кое -что странное, регулярность работает для всех разных случаев, кроме одного, и я не понимаю, почему. < /P>
Вот мой код: < /p>
String regex = "\\b(\\w+)(\\s+\\1\\b)+";
Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
String input = "INPUT";
Matcher m = p.matcher(input);
// Check for subsequences of input that match the compiled pattern
while (m.find()) {
input = input.replaceAll(m.group(), m.group(1));
}
// Prints the modified sentence.
System.out.println(input);
< /code>
Теперь, когда -то когда -то данный ввод: < /p>
Im Am Am Am Am Am Am AM 1 AM - хороший человек < /p>
< /blockquote>
< /p>
< /p>
< /p>
< /p>
man
still has two repeating "am".
Now if INPUT is:
i am am 2 am am am 1 am am a good man
OUTPUT:
Im Am Am 2:00 1 утра - хороший человек < /p>
< /blockquote>
Нет повторяющего "am" < /p>
Я не могу понять, почему это может кто -нибудь помочь?>
Подробнее здесь: https://stackoverflow.com/questions/517 ... -b-w-s-1-b
Проблема с java regex для поиска повторяющихся слов "\\ b (\\ w+) (\\ s+\\ 1 \\ b)+" ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как проверить количество повторяющихся строк в файле .txt с помощью Regex в Java?
Anonymous » » в форуме JAVA - 0 Ответы
- 172 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Используйте LINQ для поиска повторяющихся строк (со списком указанных столбцов)
Anonymous » » в форуме C# - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-