저는 정규식을 처음 접했고 정규식 튜토리얼/테스트 사이트에서 3개의 연속 자음을 검색할 수 있는 명령을 찾았습니다. 유일한 문제는 grep과 함께 사용하는 방법을 알 수 없다는 것입니다. 누군가 나를 도와줄 수 있나요? 다음을 사용하여 단어 목록 텍스트 파일을 검색하려고 합니다.
(?:([bcdfghjklmnpqrstvwxzy])(?!.{1,2}\1)){3}
답변1
가지고 있는 정규식 패턴에는 다음이 포함됩니다.
- 비캡처 그룹,
(?:)
- 너비가 0인 부정 예측,
(?!)
grep
이는 PCRE, Perl 호환 정규식( -P
) 에서만 지원됩니다 .
grep -P
따라서 일치하는 부분만 캡처하려면 다음이 필요합니다 -o
.
% grep -Po '(?:([bcdfghjklmnpqrstvwxzy])(?!.{1,2}\1)){3}' <<<'foobarspfb'
rsp