CSV 파일이라는 게 있습니다. 엑셀에서 작성한 문서를 이 형식으로 저장할 수 있고 또 이 형식의 문서를 더블 클릭하면 엑셀이 실행되다 보니 엑셀 포맷이라고 알고들 계시지만 실은 일반 텍스트 파일입니다. 단지 각 컬럼(필드라고도 합니다)이 쉼표로 구분되어 있을 뿐이죠. CSV라는 말도 comma separate value의 첫 자를 딴 것이고요. 암튼 CSV 파일을 하나 샘플로 보여드리겠습니다.


,,계좌거래내역조회,,,,,,

,조회기간,2011.12.23 ~ 2011.12.23,,,,,,

,계좌번호,111-111-111111,,,총잔액,"987,140,388,948",,

,예금종류,저축예금,,,출금가능금액,"2,388,948",,

,,,,,,,,

,거래일자,시간,적요,출금,입금,내용,잔액,거래점

,2011.12.23,10:43:50,타행IB,0,"700,000",권오영,"2,388,948",(제일)

,2011.12.23,9:47:20,타행환,0,"300,000",우체국보험금,"1,688,948",(우체)

,2011.12.22,7:09:21,신문,"5,880",0,가톨릭신문,"1,388,948",대흥역

,2011.12.22,7:02:16,통신,"25,540",0,LG인터넷요금,"1,394,828",대흥역


오잉? 이게 뭐야... 사실 별거 아닙니다. 은행의 계좌 내역을 엑셀로 저장한 뒤 CSV로 변환한 것입니다. 중요한 것은 세 번째 줄의 총잔액입니다. 보이세요? 9천8백7십억이라는... 후덜덜덜... 근데 출금가능금액은 2백몇십만원입니다. 제가 원래 돈이 엄청 많긴 한데 다 묶여서 출금은 좀 어렵다는 전설이...


각설하고, 위의 CSV 파일 내용을 보면 각 컬럼들이 쉼표로 구분되어 있습니다. 또 어떤 컬럼은 따옴표로 감싸여 있습니다. 이는 해당 컬럼에 쉼표가 들어 있기 때문입니다. 만약 이 컬럼들에 따옴표를 두르지 않는다면 그 쉼표가 금액 컬럼에 들어 있는 쉼표인지, 컬럼을 구분하는 쉼표인지 알 방법이 없겠죠.


여기서 문제를 내겠습니다. 저 문자열을 파싱해서 HTML 포맷으로 만들어 보자는 것입니다. 가령 이렇게 말입니다.


<table>

<tr>

<td>거래일자</td>

<td>시간</td>

.

.

.

<td>2011-12-23</td>

<td>10:43:50</td>

.

.

.

</tr>

</table>


“뭐야, 저게 가능하다고?” 말도 안 되는 얘기 같지만 충분히 됩니다. 다만 그 답은 이 강의 후반부에 알려드릴 생각입니다. 뭐, 그때쯤 되면 답을 알려드릴 필요도 없겠지만요. 여러분 스스로 해결하실 수 있을테니까요.


List of Articles
번호 제목 글쓴이 날짜 조회 수
9 정규표현식 009. 메타문자 4 머니북 2012-01-10 7439
8 정규표현식 008. 메타문자 3 머니북 2012-01-09 8518
7 정규표현식 007. 메타문자 2 마라톤맨 2012-01-08 13277
6 정규표현식 006. 메타문자 1 마라톤맨 2012-01-07 9883
5 정규표현식 005. 근데 어디다 쓰는 것인고? 마라톤맨 2012-01-06 7542
4 정규표현식 004. 정규표현식이란? 마라톤맨 2012-01-05 8407
» 정규표현식 003. 맛보기 울트라 수퍼 심화 단계 마라톤맨 2012-01-04 7403
2 정규표현식 002. 맛보기 심화 단계 마라톤맨 2012-01-03 7579
1 정규표현식 001. 맛보기 마라톤맨 2012-01-02 9144