Как вернуть строки, где последнее слово заканчивается согласной буквой? - PullRequest
0 голосов
/ 31 октября 2018

Мое регулярное выражение должно возвращать строки, где последнее слово заканчивается согласной буквой. Я пишу:

egrep '[^aeiou]\b$'

но возвращает только те строки, которые не заканчиваются точкой.

Я новичок в регулярных выражениях, поэтому я буду благодарен, если вы поможете мне.

Например, мой тестовый файл:

Hello world
Hello world.
London is the capital of GB.
Oslo is the capital of Norway
Oslo is the capital of Norway.
Oslo is not a capital of Ukraine.

Теперь мое выражение возвращает:

Hello world
Oslo is the capital of Norway

Но он должен вернуться:

Hello world
Hello world.
London is the capital of GB.
Oslo is the capital of Norway
Oslo is the capital of Norway.

1 Ответ

0 голосов
/ 31 октября 2018

Проблема вашего регулярного выражения в том, что оно ищет букву, которая не является гласной, но с другой стороны не обязательно ищет согласные. \b тоже не должно быть. Поскольку Вы хотите игнорировать знаки препинания, попробуйте следующее:

egrep '[b-df-hj-np-tv-z]\W*$'

\W означает символ, который не является [a-zA-Z0-9_]

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