본문 바로가기
공부

TCL에 대해 알아보자(4) TCL 문자열 처리

by 차근차근배우자 2023. 7. 25.
반응형

이번 쳅터에서는 TCL의 문자열 처리에 대해 알아보겠습니다

단순한 TCL 로고



개인적으로 문자열처리는 배열 리스트 보단 중요도가 떨어진다고 생각하지만 개념을 알고 있으시면 좋을 것 같습니다

1. 문자열 함수와 연산

TCL에서는 여러 문자열 함수와 연산을 제공합니다.

문자열 연결: 문자열 연결은 단순히 두 문자열을 연속으로 배치하는 것으로 수행됩니다.

set str1 "Hello, "
set str2 "World!"
puts $str1$str2 ;# outputs "Hello, World!"


문자열 길이: string length 함수를 사용하여 문자열의 길이를 얻을 수 있습니다.


set str "Hello, World!"
puts [string length $str] ;# outputs "13"


문자열 비교: string compare 함수를 사용하여 두 문자열을 비교할 수 있습니다. 이 함수는 두 문자열이 동일한 경우 0을 반환하고, 그렇지 않은 경우 0이 아닌 값을 반환합니다.

set str1 "Hello"
set str2 "World"
puts [string compare $str1 $str2] ;# outputs a non-zero value


부분 문자열 추출: string range 함수를 사용하여 문자열의 부분 문자열을 추출할 수 있습니다.

set str "Hello, World!"
puts [string range $str 0 4] ;# outputs "Hello"


문자열 대체: string replace 함수를 사용하여 문자열 내의 부분 문자열을 다른 문자열로 대체할 수 있습니다.

set str "Hello, World!"
puts [string replace $str 0 4 "Goodbye"] ;# outputs "Goodbye, World!"

2. 정규 표현식 사용

TCL은 regexp 함수를 통해 정규 표현식을 지원합니다. regexp 함수는 문자열이 주어진 패턴과 일치하는지를 확인합니다.

예를 들어, 문자열이 숫자로만 구성되어 있는지 확인하는 방법은 다음과 같습니다.

set str "12345"
if {[regexp {^[0-9]+$} $str]} {
    puts "$str contains only digits."
} else {
    puts "$str contains non-digit characters."
}

위의 코드에서 정규 표현식 ^[0-9]+$는 하나 이상의 숫자로 구성된 문자열을 나타냅니다. 문자열이 이 패턴과 일치하면 regexp 함수는 1을 반환하고, 그렇지 않으면 0을 반환합니다.

또한, regexp 함수는 일치하는 부분 문자열을 캡처하는 데도 사용될 수 있습니다.

set str "The quick brown fox"
if {[regexp {brown (\w+)} $str match word]} {
    puts "The word after 'brown' is '$word'"
} else {
    puts "No match found"
}


위의 코드에서 정규 표현식 brown (\w+)는 "brown" 다음에 오는 단어를 찾습니다. \w+는 하나 이상의 알파벳 문자를 나타냅니다.

일치하는 부분 문자열은 match 변수에 저장되고, 괄호로 묶인 부분은 word 변수에 저장됩니다. 이 경우, 'fox'라는 단어가 word 변수에 저장됩니다.

3. 문자열 분할 및 결합

TCL은 문자열을 분할하거나 결합하는 데 유용한 함수들을 제공합니다.

문자열 분할: split 함수는 문자열을 분할하여 리스트를 반환합니다. 이 함수는 분할할 문자열과 구분자를 인수로 받습니다.

set str "apple,banana,orange"
set fruits [split $str ","]
foreach fruit $fruits {
    puts $fruit
}

위의 코드는 문자열을 "," 구분자로 분할하고, 결과를 출력합니다.

리스트 결합: join 함수는 리스트의 요소를 결합하여 문자열을 반환합니다. 이 함수는 결합할 리스트와 구분자를 인수로 받습니다.

set fruits [list "apple" "banana" "orange"]
set str [join $fruits ","]
puts $str ;# outputs "apple,banana,orange"

위의 코드는 리스트의 요소를 "," 구분자로 결합하고, 결과를 출력합니다.

4. 문자열 검색

string first 함수를 사용하면 문자열 내에서 특정 부분 문자열이 처음으로 나타나는 위치를 찾을 수 있습니다.

set str "Hello, World!"
set pos [string first "World" $str]
puts $pos ;# outputs "7"

위의 코드는 "World"라는 부분 문자열이 "Hello, World!"라는 문자열에서 처음으로 나타나는 위치를 찾습니다.

마찬가지로, string last 함수를 사용하면 문자열 내에서 특정 부분 문자열이 마지막으로 나타나는 위치를 찾을 수 있습니다.

5. 문자열 변환

TCL은 문자열을 대문자 또는 소문자로 변환하는 데 유용한 함수들을 제공합니다.

대문자 변환: string toupper 함수는 문자열을 대문자로 변환합니다.

set str "Hello, World!"
puts [string toupper $str] ;# outputs "HELLO, WORLD!"

소문자 변환: string tolower 함수는 문자열을 소문자로 변환합니다.

set str "Hello, World!"
puts [string tolower $str] ;# outputs "hello, world!"


이상 TCL 문자열 챕터에 대한 설명을 마치겠습니다
궁금하신 사항은 댓글로 남겨주세요!

반응형