답변:
나는 사용할 것이다 \zs
:%s/.*\zspattern/replacement/
약간의 설명 :
.
단일 문자를 나타냅니다*
욕심 매칭 (최대한)빔에서는 제로 폭 앵커를 사용 \zs
하고 \ze
시작과 일치하고자하는 검색 패턴의 끝을 정의합니다. 전 아무것도 \zs
후의 \ze
당신의 패턴의 교체에 의해 영향을받지 않습니다.
이해하기 쉽도록 wikia 의 Search and replace 에서이 예제를 사용하고 싶습니다 .
\zs
및\ze
을 사용하여 입력을 저장하여 패턴의 시작과 끝을 설정하십시오. 예를 들어,:s/Copyright 2007 All Rights Reserved/Copyright 2008 All Rights Reserved/
사용하다:
:s/Copyright \zs2007\ze All Rights Reserved/2008/
자세한 내용은
완전성을 위해 대안을 게시 할 것이라고 생각했습니다. Vim에는 다중 항목 이 있으며 그 중 일부는 더 일반적인 정규 표현식 둘러보기 어설 션 (음수 / 양수 미리보기 / lookbehind) 과 유사합니다 . /programming/2973436/regex-lookahead-lookbehind-and-atomic-groups
이 경우 네거티브 lookahead를 원합니다. \@!
즉 , 항목 앞에있는 원자가 pattern 이후에 발생하지 않도록해야합니다 . 이 경우 원자는 패턴 그 자체 앞에 다른 것입니다.
:%s/pattern\(.*pattern\)\@!/replacement/
괄호 안의 부분은 너비 가 0 이며 일치 항목에 포함되지 않으므로 대체로 대체되지 않습니다.
:h \@!
자세한 내용이나 :h pattern-multi-items
다른 둘러보기 변형이 포함 된 전체 섹션 을 참조하십시오 .
\zs
답변에서 무엇을하는지에 대한 기본 설명을 제공해 주 시겠습니까?