Как использовать это регулярное выражение с grep?

Как использовать это регулярное выражение с grep?

Я новичок в регулярных выражениях и нашел команду на сайте с учебным пособием/тестом по регулярным выражениям, которая позволит мне искать 3 последовательные согласные. Единственная проблема в том, что я не могу понять, как использовать ее с grep. Кто-нибудь может мне помочь? Я пытаюсь выполнить поиск в текстовом файле списка слов, используя:

(?:([bcdfghjklmnpqrstvwxzy])(?!.{1,2}\1)){3}

решение1

Ваш шаблон Regex содержит:

  • Группа, не захватывающая(?:)
  • Отрицательный просмотр вперед нулевой ширины,(?!)

которые поддерживаются только grepс PCRE, Perl-совместимыми регулярными выражениями ( -P)

Итак, вам нужно grep -P, и чтобы захватить только совпавшую часть, -o:

% grep -Po '(?:([bcdfghjklmnpqrstvwxzy])(?!.{1,2}\1)){3}' <<<'foobarspfb'
rsp

Связанный контент