vim으로 코딩을 않하다보니 알아두면 까먹고...알아두면 까먹고... vim정규식으로 검색된 문자열을 치환하고 싶은데요. %s/[0-9]\{4\}/test('\1')/g 이렇게 치면 되던것 같은데..안되네요.. 그냥 울트라로 해버리긴 했는데..이거 또 궁금병이 도져서 일이 손에 안잡히네요.. 아시는 분 알려주세요...T.T
정확히 어떤 문장을 어떻게 바꾸려는지 감이 안잡혀서 뭐라고 답변하기는 좀 힘든데요. 대충 자연수 4자리인 문자열을 찾아서 "test('찾은문자')"로 바꾸시려는 것 같은데... 먼저 뒤의 정규식에서 "\1"이 아무런 의미 없어 보이네요. 앞에서 괄호로 지정된 곳이 있어야 매칭이 될텐디 없으니까 결과는 4자리 숫자는 모두 "test('')"로 바뀌게 될 것 같네요. "\1"에 앞에서 매칭된 4자리 숫자를 넣으시려면 다음과 같이 되어야 겠죠.
:%s/\([0-9]\{4\}\)/test('\1')/g
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
의미 파악이 조금 안되는데...
정확히 어떤 문장을 어떻게 바꾸려는지 감이 안잡혀서 뭐라고 답변하기는 좀 힘든데요.
대충 자연수 4자리인 문자열을 찾아서 "test('찾은문자')"로 바꾸시려는 것 같은데...
먼저 뒤의 정규식에서 "\1"이 아무런 의미 없어 보이네요.
앞에서 괄호로 지정된 곳이 있어야 매칭이 될텐디 없으니까 결과는
4자리 숫자는 모두 "test('')"로 바뀌게 될 것 같네요.
"\1"에 앞에서 매칭된 4자리 숫자를 넣으시려면 다음과 같이 되어야 겠죠.
다시 말해서 "\1"에 매칭될 문자열을 앞에서 괄호로 묶어 주어야 하는 것입니다.
댓글 달기