vim 특정 숫자가 포함된 숫자 검색

vim 특정 숫자가 포함된 숫자 검색

큰 문서에서 특정 길이의 숫자를 찾아야 합니다. 이를 위해 정규식을 사용해 보았습니다. 예를 들어, 정확히 2자리 숫자를 검색해야 하는 경우 \d\d/d를 두 번 사용한 다음 공백을 사용합니다. 이것은 훌륭하게 작동합니다.

하지만 10자리 숫자를 찾으려면 \d10번 입력하는 것이 실제로 불가능합니다.

시도해 \d{2}보고 'E486: 패턴을 찾을 수 없습니다: \d{2}'

이를 달성하는 더 빠르고 쉬운 방법이 있습니까?

답변1

다양한 정규식 방언이 있습니다. 일부(Perl 등)에는 백슬래시가 필요하지 않습니다.양자화 수정자( \d{2}), 일부(sed 등)에는 두 개( \d\{2\})가 필요한 반면, Vim에서는 시작 문구에만 두 개( \d\{2})가 필요합니다. 이것은 정규식 방언이 호환되지 않는 슬픈 상태입니다.

또한 일치시키려면 참고하세요.정밀한숫자의 경우 ( ) 안의 숫자와 일치 \d\{2}하지 않도록 일치 항목을 고정해야 합니다 . 이는 다음을 통해 수행할 수 있습니다.12123부정적으로 뒤를 돌아보며그리고시야:

\d\@<!\d\{2}\d\@!

답변2

다음을 시도해 보십시오:

\d\{2}

당신은 \사용해서는 안됩니다/

vim의 정규식에 대한 자세한 내용은 여기에서 확인할 수 있습니다.장소또는 .vim:help regular

답변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\+

관련 정보