You are here

split 명령어는 다른 언어(Perl,Pytho)과 많이 다릅니다.

오랜만에 글 올립니다.
어느덧 대한이 지나고 비교적 따뜻한 날이 오니 살만하네요.
운영자님도 건강하신지요?

오늘은 다름이 아니오라 split의 동작이 다른 언어?차이점이
있어 운영자님은 어떻게 해결하신지 궁금합니다.

제 나름대로 온라인~도서를 뒤져봤지만 별다른 해결책을 찾지 못해 자체적으로 구현해 봤습니다. ^^;

아래 글은 문제점과 해결책입니다.(반말은 이해해주세요. 정리문서에서 발췌한 ?.)

항상 글 읽고 주시고 답변주신것에 감사드립니다.오늘도 좋은 하루 되세요.

리스트의 split 명령어 다루기

split는 다른 언어(Perl,Python..)과 다른점이 두가지가 있다.

1) 문자열로 분해할 수 없다. 예) "abc"는 "abc"가 아닌 "a","b","c" 개별적으로 분리된다.
2) 분리되는 수를 정할 수 없다. 예) split $num 은 불가능하다.

1)은 어쩔 수 없는 것 같다.
2)는 아래 두가지 방법으로 해결한다.

3개의 문자열을 두 개의 리스트로 나눌려 할때 즉, "a b c"를 {a}, {b c}로 나누려면 다음과 같다.

1) 문자열의 색인 찾기

set string "a b c"
set first [string first " " $string]
puts [string range $string 0 $first]; # "a"
puts [string range $string $first end]; # "b c"

2) 리스트의 슬라이스 이용(lrange)

set string "a b c"
set list   [split $string]
puts [lrange $list 0 0]; # {a}
puts [lrange $list 1 end]; # {b c}