![vim에서 N개의 대상 문자/패턴이 포함된 줄을 검색하는 방법은 무엇입니까?](https://linux55.com/image/63101/vim%EC%97%90%EC%84%9C%20N%EA%B0%9C%EC%9D%98%20%EB%8C%80%EC%83%81%20%EB%AC%B8%EC%9E%90%2F%ED%8C%A8%ED%84%B4%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EC%A4%84%EC%9D%84%20%EA%B2%80%EC%83%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
오늘은 4개의 작은따옴표가 포함된 행을 검색해야 합니다 '
.
하지만 g/'\{4,4\}
연속된 작은따옴표 4개만 캡처할 수 있습니다.
그래서 코드를 다음과 같이 변경했습니다 :g/\[^'\]\?'\[^'\]\?'\[^'\]\?'\[^'\]\?'\[^'\]\?
.
이것은 작동하지 않고 보기에도 좋지 않습니다.
대상 패턴이 N번째 발생한 행을 검색할 수 있는 멋진 방법 또는 최소한 실행 가능한 방법이 있습니까?
아니면 더 나은 방법은 최소 패턴 발생 횟수와 최대 패턴 발생 횟수를 지정할 수 있다는 것입니다.
답변1
이렇게 하면 됩니다:
/^[^']*\%('[^']*\)\{4}$
따옴표 뒤에 따옴표가 아닌 항목( '[^']
)이 4번 검색됩니다( \{4}
; 여기에서 범위를 지정할 수도 있습니다(예 \{2,5}
: ). 행의 숫자가 정확히 일치하는지 확인하기 위해 패턴은 다음과 같습니다.고정된시작( ^[^']*
, 앞에 선택적 비따옴표가 옴) 및 끝( $
, 후행 비따옴표가 이미 반복에 포함되어 있음).