Как удалить конкретное окончание слов в файле на Java? - PullRequest
0 голосов
/ 24 мая 2018

Я хотел бы удалить все окончания слов в файле, например удалить все -ed (работал, любил, испортил, Photoshopped, манипулировал), чтобы (работа, любовь, разорение, Photoshopp, манипулировать)

Iпонятия не имею, как это сделать, я искал синтаксис регулярных выражений, но я получил только удаление одного символа в конце

 aLine = aLine.replaceAll("[\\<ed>]\\b", "");

Ввод был:

Сидеть вна пишущей машинке дома работал фотомагазин

Я получил:

Сидя за пишущей машинкой в ​​фотошопе Hom Work *

Какой самый простой способсделать это?

1 Ответ

0 голосов
/ 24 мая 2018

Я бы рекомендовал использовать следующее регулярное выражение:

(?<=\w)ed\b

DEMO

Пояснения:

  • (?<=\w) или (?<=[a-zA-Z]) означает, что слева от ed стоит символ слова, или буква (ограничение, что оно является частью слова)
  • \b налагаетчто за символом следует символ границы слова

Затем вы адаптируете его к своему коду:

String input="I have worked a lot and ruined my health but I have loved my job even if "
        + "I habe been manipulated and ruined by this Photoshopped picture. "
        + "Ed and Eddy are happy today even if they have partied the whole night. ";

String output=input.replaceAll("(?<=\\w)ed\\b", "");
System.out.println(output);

ВЫХОД:

I have work a lot and ruin my health but I have lov my job even if I habe been manipulat and ruin by this Photoshopp picture. Ed and Eddy are happy today even if they have parti the whole night. 

Таблица быстрого начала регулярных выражений: http://www.rexegg.com/regex-quickstart.html

Обобщение :

(?<=\w)[a-zA-Z]{2}\b

Вы можете использовать это регулярное выражение, если хотите удалить последние 2 буквы всех слов(длиннее 2 символов во входной строке)

УЛУЧШЕНИЕ:

Также можно удалить вид сзади и просто использовать следующее регулярное выражение: \Bed\b дляed окончание слов и \B[a-zA-Z]{2}\b удаление последних 2 букв всех слов (длиннее 2 символов в вашей входной строке)

Спасибо revo за это улучшение!

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