Проблема с java regex для поиска повторяющихся слов "\\ b (\\ w+) (\\ s+\\ 1 \\ b)+"JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с java regex для поиска повторяющихся слов "\\ b (\\ w+) (\\ s+\\ 1 \\ b)+"

Сообщение Anonymous »

Недавно я работал над проблемой удаления повторяющихся слов в строке, то есть «я хорош» становится «я хорош». Но я заметил кое -что странное, регулярность работает для всех разных случаев, кроме одного, и я не понимаю, почему. < /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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»