извлекать только те слова, которые не содержат слов, оканчивающихся на определенную комбинацию букв (используя только регулярные выражения) - PullRequest
2 голосов
/ 31 октября 2019

У меня есть этот список слов на португальском языке https://raw.githubusercontent.com/pythonprobr/palavras/master/palavras.txt. Я хочу извлечь только те слова, которые не заканчиваются на "er" или "ar". Я пытался применить методы в ответах на этот вопрос Регулярное выражение не соответствует словам, заканчивающимся на "Impl" , но я не могу заставить его работать. Я использовал эту команду из этого ответа https://stackoverflow.com/a/22964675/10824251: $ grep -oP '[A-Z][A-Za-z\d]*(\?<! er) [ [A-Z] [A-Za-z \\ d] * (\? <! er)] ' palavra.txt > output.txt

1 Ответ

2 голосов
/ 31 октября 2019

Чтобы получить все строки, которые не заканчиваются er и ar, вы можете использовать

grep -v '[ea]r$' palavras.txt > output.txt

ПРИМЕЧАНИЯ:

  • -v - инвертировать результатмы получаем все строки, которые не соответствуют регулярному выражению
  • [ea]r$ - соответствует e или a, затем r в конце строки
...