vim2011. 6. 14. 20:00
테이블에 데이터를 넣으려고 csv 파일을 만지다 보면 한글 또는 영어와 같은 문자열 값을 큰따옴표로 감싸야 하는 작업을 반복하게 된다. 레코드의 양이 많으면 상당히 노가다를 하게 되는데 이를 정규식으로 해결할 수 있다.

핵심이 되는 정규표현식 : ([^0-9,][^,]*)

gvim에서 다음과 같이 정규식을 사용하면 테이블의 모든 문자열 필드의 값을 큰따옴표 안에 넣을 수 있다.

:%s/\([^0-9,][^,]*\)/"\1"/g

1,coin,10,스피커,음질좋음   =>  1,"coin",10,"스피커","음질좋음"



다음과 같은 예제에서 실패했음을 발견했다.

7부능선 => 7"부능선"

필드의 값이 숫자로 시작하는 경우를 고려하면 다음처럼 변경해야 한다.

:%s/\([0-9]\{0,\}[^0-9,][^,]*\)/"\1"/g 
 
1,coin,10,7부능선,능선이다   =>  1,"coin",10,"7부능선","능선이다"
  

{0,} 는 * 과 같은 의미이므로 다음과 같이 간결하게 변경할 수 있다.

:%s/\([0-9]\{0,\}[^0-9,][^,]*\)/"\1"/g  => :%s/\([0-9]*[^0-9,][^,]*\)/"\1"/g  

'vim' 카테고리의 다른 글

정규표현식 이용해서 문자열 순서 바꾸기  (0) 2012.11.14
[gVim] 찾은 내용 하이라이트  (0) 2011.06.08
[gVim] 유용한 단축키  (0) 2011.04.19
Posted by 준피
즐길거리/책2011. 4. 1. 22:17


  정규식을 처음 접하는 초보자도, 이미 정규식을 써봤지만 가물가물한 개발자도 읽기 좋은 책이다. 더구나 책이 얇기 때문에 언제 어디서든 가지고 다니면서 읽을 수 있다. 실제로 본인은 걸어다니면서도 읽은 적이있다. 각 파트마다 핵심 기능을 짧고 굵게 설명했기 때문에 필요할 때 찾아보기가 쉽다.
  정규식을 조금씩 써봤지만 정말 정답이 없는 상황이 많은데 이 책을 읽고 나니 좀 더 유연하게 최선의 방법을 찾게 될거란 희망이 생겼다. 실제 개발할 때도 조금만 생각하면 정규식을 쓸 상황을 만들수 있고, 정규식을 쓰면 정말 편하게 해결한다. 그렇기 때문에 친구가 망설임없이 생일선물로 건네준 책이다.

'즐길거리 > ' 카테고리의 다른 글

미식견문록  (0) 2011.05.11
파라다이스  (0) 2011.04.07
리팩토링  (0) 2011.03.14
프로그래머가 몰랐던 멀티코어 CPU 이야기  (0) 2011.03.08
빨간클립한개  (0) 2011.01.28
Posted by 준피