regex를 사용하여 모두를 대체 할 메커니즘이 있지만 ".*"
과 일치하는 것을 유지합니까?regex를 사용하여 foo (. *)를 (foo <이전에 괄호 안에 있었던 내용)으로 바꾸는 방법?
정규 표현식에 포함되지 않았지만 일부 편집자가 사용할 수있는 경우 적절하게 말하십시오. 당신을 가정
regex를 사용하여 모두를 대체 할 메커니즘이 있지만 ".*"
과 일치하는 것을 유지합니까?regex를 사용하여 foo (. *)를 (foo <이전에 괄호 안에 있었던 내용)으로 바꾸는 방법?
정규 표현식에 포함되지 않았지만 일부 편집자가 사용할 수있는 경우 적절하게 말하십시오. 당신을 가정
당신이 공백으로 괄호 속에있는 것을에서 "foo는"분리하고 괄호 모든 것을 둘러싸고 원하는 : 그 \1
에서
:%s/foo\(.*\)/(foo \1)/g
첫 번째의 텍스트를 나타냅니다 괄호. 당신은 당신이 끝장
당신이 fooMOO
했다 감안할 등 다른 괄호 그룹을 한 경우 \2
을 사용할 수 (foo MOO)
: % s /는 무엇을 의미합니까? vim과 관련이 있나요? – MaiaVictor
the : 시작 명령 모드, %는 "전체 파일 실행"을 나타내며 s는 대체 명령을 시작합니다. 100 % 정력 관련. – dpw
당신은 대체 패턴에 역 참조를 사용할 수 있습니다
를%s/foo(\(.*\))/foo \1/g
이 패턴에서 이스케이프 처리 된 괄호는 텍스트의 실제 괄호와 일치하지만 이스케이프 처리 된 괄호는 캡처럼 작동합니다 괄호 안들어. \ 1은 역 참조이며 정규 표현식에서 캡처 링 괄호의 첫 번째 집합 내부에서 일치하는 모든 것을 참조합니다. 한 줄에 여러 함수 호출이있을 경우 일치하는 문자의 수를 제한하고 싶을 것입니다. (문자열, 예를 들어)) (foo를 위해 인수 목록에서 닫는 괄호가있는의 위험이 없다면 그때는 아마하고 싶은 것 그 부근에 괄호 일치하지 않음으로써 :이 경우
%s/foo(\([^)]\))/foo \1/g
을 인수 목록에 닫는 괄호를 넣을 위험이 있으므로 상황이 복잡해집니다.
우연히 lisp로 변환 하시겠습니까? – jmite