Как сопоставить и заменить указанную последнюю букву (буквы) слов другой буквой в предложении - PullRequest
1 голос
/ 23 октября 2019

Я читаю из текстового файла.

Мое предложение: tax mass plus match

Когда я пробую это выражение и код.

Фактический результат: taes maeses plues mateses

Ожидаемый результат: taxes masses pluses matches

String line_2 = Files.readAllLines(Paths.get("input.txt.txt")).get(0);
Pattern pattern_Plural = Pattern.compile("\\b*[(ss)(s)(sh)(ch)(s)(x)(z)]", Pattern.CASE_INSENSITIVE);

Matcher m_Plural = pattern_Plural.matcher(line_2);

if (m_Plural.find()) {
   String str1 = m_Plural.replaceAll("es");
   System.out.println(str1);
}

1 Ответ

1 голос
/ 23 октября 2019

Попробуйте:

String line_2 = Files.readAllLines(Paths.get("input.txt.txt")).get(0);
System.out.println(line_2.replaceAll("(?i)(ss|s|sh|ch|s|x|z)(\\b)", "$1es"));

$1 означает, что захваченная группа помогает сохранить часть текста (ss|s|sh|ch|s|x|z).

(?i) используется для нечувствительности к регистру.

Выход:

taxes masses pluses matches
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...