Vim 편집기를 사용하여 괄호 안의 패턴을 바꾸는 방법

Vim 편집기를 사용하여 괄호 안의 패턴을 바꾸는 방법

다음과 같이 :(콜론)으로 구분된 두 개의 필드가 포함된 파일이 있습니다.

Ram:con_[3:4]_aen[52:7]
Rakesh:sync[0:128]

vim 편집기를 사용하여 대괄호 [] 안의 :(콜론)을 다음과 같이 !로 변환해야 합니다.

Ram:con_[3!4]_aen[52!7]
Rakesh:sync[0!128]

나는 이것을 시도했지만 위에 표시된 결과를 얻지 못했습니다.

:%s/[%d:%d]/[%d!%d]/g

답변1

당신이 사용할 수있는:

%s/\(\d\+\)\@<=:/!/g

\(\d\+\)소수 찾기

\@<=긍정적으로 되돌아보세요. 뒤로 본다는 것은 이전 패턴(이 경우 위의 패턴)이 다음 기호와 일치해야 함을 의미합니다. VIM이 이를 달성하는 방법에 대해 자세히 알아볼 수 있습니다.여기.

:성냥':'.

답변2

당신은 그것을 사용할 수 있습니다

:%s/\([[0-9]\+\):\([0-9]\+]\)/\1!\2/g

요소 를 그룹화 하고 [number1첫 번째 요소 와 두 번째 요소를 number2]복사 하고 그 사이에 하나를 배치했습니다 .\([[0-9]\+\)\([0-9]\+]\)\1\2!

예전에는 하나 이상의 숫자를 의미했지만 콜론과 각 괄호 사이에 항상 숫자가 있다고 확신한다면 [0-9]\+다음과 같이 단순화할 수 있습니다(0개 이상의 숫자를 의미함).[0-9]*

:%s/\([[0-9]*\):\([0-9]*]\)/\1!\2/g

답변3

:%s/\v\(\[[0-9]+):([0-9]+\])/\1!\2/g

\v추가 정규식 기능 활성화

(\[[0-9]+)왼쪽 괄호와 최소 한 자리 숫자로 구성된 캡처 그룹

:원하지 않는 콜론

([0-9]+\])하나 이상의 숫자와 닫는 괄호로 구성된 캡처 그룹

\1!\2원하는 캡처 그룹과 폭발의 내용

관련 정보