1

私はTCLの初心者で、文字列内の最初の出現から文字列内のすべての文字(それ自体を含む)を見つけて削除できるTCLメソッド/ユーティリティ/コードが必要です。

以下のような文字列があります。

Func::set()->method();

上記の文字列では、最初に出現する「(」を見つけてすべて削除し、その後、結果の文字列が次のようになるようにする必要があります。

Func::set
4

2 に答える 2

3

正規表現でそれを行うことができます:

set the_string [regsub {\(.*} $the_string ""]

または、正規表現に慣れていない場合は、より伝統的な方法で行うことができます。

set the_string [
    string range $the_string 0 [
        expr {[string first "(" $the_string]-1}
    ]
]

詳細については、[ string ]、[ regsub ]、および [ re_syntax ] のマニュアル ページを参照してください。

于 2012-11-01T05:42:47.337 に答える
1

もう 1 つの手法は、splitandを使用することlindexです。

set the_string [lindex [split $the_string "("] 0]

これは短くて単純ですが、文字列が非常に長い場合は、多くの余分な作業が必要になる場合があります。

于 2012-11-01T10:05:26.670 に答える