Удаление определенного слова из строки
Я пытаюсь удалить определенное слово из определенной строки с помощью функции replace()
или replaceAll()
, но они удаляют все вхождения этого слова, даже если они являются частью другого слова!
Пример:
String content = "is not like is, but mistakes are common";
content = content.replace("is", "");
вывод: "not like , but mtakes are common"
желаемый результат: "not like , but mistakes are common"
Как я могу заменить только целые слова из строки?
Ответы
Ответ 1
Что, черт возьми,
String regex = "\\s*\\bis\\b\\s*";
content = content.replaceAll(regex, "");
Помните, что вам нужно использовать replaceAll(...)
для использования регулярных выражений, а не replace(...)
-
\\b
дает вам границы слов
-
\\s*
отбрасывает любое свободное пространство по обе стороны от удаляемого слова (если вы также хотите удалить это).
Ответ 2
content = content.replaceAll("\\Wis\\W|^is\\W|\\Wis$", "");
Ответ 3
Вы можете попробовать заменить "is" на "". Это пробел до и один за другим, замененный одним пробелом.
Update:
Чтобы заставить его работать для первого "есть" в предложении, также выполните другую замену "is" для "". Замена первого и первого пробела с пустой строкой.