![vim 특정 숫자가 포함된 숫자 검색](https://linux55.com/image/46368/vim%20%ED%8A%B9%EC%A0%95%20%EC%88%AB%EC%9E%90%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EC%88%AB%EC%9E%90%20%EA%B2%80%EC%83%89.png)
큰 문서에서 특정 길이의 숫자를 찾아야 합니다. 이를 위해 정규식을 사용해 보았습니다. 예를 들어, 정확히 2자리 숫자를 검색해야 하는 경우 \d\d
/d를 두 번 사용한 다음 공백을 사용합니다. 이것은 훌륭하게 작동합니다.
하지만 10자리 숫자를 찾으려면 \d
10번 입력하는 것이 실제로 불가능합니다.
시도해 \d{2}
보고 'E486: 패턴을 찾을 수 없습니다: \d{2}'
이를 달성하는 더 빠르고 쉬운 방법이 있습니까?
답변1
다양한 정규식 방언이 있습니다. 일부(Perl 등)에는 백슬래시가 필요하지 않습니다.양자화 수정자( \d{2}
), 일부(sed 등)에는 두 개( \d\{2\}
)가 필요한 반면, Vim에서는 시작 문구에만 두 개( \d\{2}
)가 필요합니다. 이것은 정규식 방언이 호환되지 않는 슬픈 상태입니다.
또한 일치시키려면 참고하세요.정밀한숫자의 경우 ( ) 안의 숫자와 일치 \d\{2}
하지 않도록 일치 항목을 고정해야 합니다 . 이는 다음을 통해 수행할 수 있습니다.12
123
부정적으로 뒤를 돌아보며그리고시야:
\d\@<!\d\{2}\d\@!
답변2
답변3
이스케이프 괄호 작동 방식:\d\{2\}
답변4
5와 같은 고정 길이 숫자 검색
/\d\{5\}
12345, 123456과 일치
5자리 이상의 숫자에는 5자리의 하위 문자열이 포함되어 있으므로 해당 숫자도 검색됩니다.
단어 경계 시작
\<
단어 경계의 끝
\>
그런 다음 아래 방법을 사용하여 정확한 5자리 숫자를 검색하세요.
/\<\d\{5\}\>
12345와 일치하지만 123456은 일치하지 않음
5자리 이상의 숫자를 검색하려면 다음을 사용하세요.
/\<\d\{5,\}\>
5~8자리 숫자를 검색하려면 다음을 사용하세요.
/\<\d\{5,8\}\>
8자리 이하의 숫자를 검색하려면 다음 명령어를 사용하세요.
/\<\d\{,8\}\>
1자리 이상의 단축번호
/\d\+