2011-02-01 2 views
0

나는이 형식으로 데이터가 :vi (m)에서 찾기 및 바꾸기로 텍스트 부분을 어떻게 재정렬 할 수 있습니까?

03/18/2010 
03/18/2010 
04/19/2010 

내가 지금처럼, 처음으로, 각 날짜 문자열의 끝에서 올해를 이동하고 싶습니다 :

내가 검색이 필요
2010/03/18 
2010/03/18 
2010/04/19 

/교체 이것을 할 패턴. 다음과 같이 앰퍼샌드를 사용해야 할 수도 있다고 생각했습니다.

:%s/'[0-9]\{2\}'\/'[0-9]\{2\}'\/'[0-9]\{4\}'/&3\/&1\/&2/ 

또는 그 라인에있는 것이 있지만 확실하지 않습니다. 이 검색/대체가 가능합니까? 그렇다면 누군가가 나를 친절하게 가르쳐 줄 것입니까?

답변

3

물론 가능합니다. 대신 대체 명령의 여러 부분 사이의 분리 슬래시 사용

  • , 난 + 심볼을 사용했을

    :%s+\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)+\3/\1/\2+ 
    

    난 다음 변경. 구분 기호는 슬래시가 아니어도됩니다. %s 뒤에 오는 기호는 구분 기호가됩니다. 이는 패턴에서 슬래시를 사용해야하기 때문에 유용합니다.

  • 괄호를 사용하여 정규 표현식 내에 그룹을 만들었습니다. 이렇게하면 백 슬래시 다음에 그룹 번호를 사용하여 replace 패턴에서이 그룹을 참조 할 수 있습니다. 그룹은 왼쪽에서 오른쪽으로 번호가 매겨지며, 1부터 시작하여 그룹 0은 전체 일치입니다.

+0

정말 대단합니다. 감사합니다. 나는 행운이없이 1 시간 이상 이것을 봤다. 다시 한번 감사드립니다. – Brian

+0

편집이 더 잘 진행되었습니다. 다시 한번 감사드립니다. – Brian

관련 문제