2012-11-23 3 views
0

내가 따라서 아래의 출력을 달성하기 위해 필요한 메커니즘을 제공하기 위해 도움을 요청하는 TCL 훨씬 숙련 아닙니다 문자 또는 문자의 occurance 때까지 문자열 : 가정하자 나는 가치 문자열 이다가 "그는 음식을 제공스트립

을 (readymade 아이스크림); "

나는 등이 주요 캐릭터 중 문자열 싶다 "레디 메이드 아이스크림을)"

또한 같은 문자열을 얻기 위해 주요 캐릭터의 더 스트립이 가능하다 "레디 메이드 아이스크림"

여기

내 시도하지만 그것은 작동하지 않습니다 :

string trim $str "(" 

답변

0

이 (가) 왼쪽에서 트림하려면

set ix [string first ($s] 
if {$ix >= 0} { 
    incr ix 
    set s [string range $s $ix end] 
} 
# else the string does not contain '(' 

이 (가) 오른쪽에서 트림하려면

set ix [string last) $s] 
if {$ix >= 0} { 
    incr ix -1 
    set s [string range $s 0 $ix] 
} 
# else the string does not contain ')' 

이 더 많은 정보를 위해 manualpages를 참조하십시오.

0

이 정규식이 옳다 경우입니다 것은 사용 :

if {[regexp {\(([^()]*)\)} $str -> substring]} { 
    puts "found $substring in parentheses" 
} else { 
    puts "did not find anything suitable" 
} 
+0

감사합니다. 그러나 값을 독립적으로 얻을 수 있습니까? 문자열의 오른쪽이나 왼쪽의 문자까지 다듬기를 의미합니다. – Prakash