String 如何通过一对闭合和开放的curely支架进行拆分

String 如何通过一对闭合和开放的curely支架进行拆分,string,tcl,String,Tcl,我有一个字符串,比如: set a "alfa beta gama} {alfa} {gama" 我试着做: set b [split $a "} {"] 我希望结果是列表b,其中包含: element 1 = alfa beta gama element 2 = alfa element 3 = gama 但是,当我尝试此操作时,我没有得到期望的结果,因为tcl试图使用“进行拆分,split命令将一组字符作为其可选的第二个参数(为了方便起见,将其表示为字符串)。进行您所追求的那种拆分的选

我有一个字符串,比如:

set a "alfa beta gama} {alfa} {gama"
我试着做:

set b [split $a "} {"]
我希望结果是列表b,其中包含:

element 1 = alfa beta gama
element 2 = alfa
element 3 = gama

但是,当我尝试此操作时,我没有得到期望的结果,因为tcl试图使用“

进行拆分,
split
命令将一组字符作为其可选的第二个参数(为了方便起见,将其表示为字符串)。进行您所追求的那种拆分的选项实际上是:

  • 使用Tcllib中的
    textutil::split

    package require textutil::split
    
    set pieces [textutil::split::splitx $yourString "***=\} \{"]
    
  • 将字符序列转换为稀有字符,并在此基础上拆分:

    set pieces [split [string map [list "\} \{" "\uffff"] $yourString] "\uffff"]
    

  • split
    命令将一组字符作为可选的第二个参数(为了方便起见,将其表示为字符串)。进行您所追求的那种拆分的选项实际上是:

  • 使用Tcllib中的
    textutil::split

    package require textutil::split
    
    set pieces [textutil::split::splitx $yourString "***=\} \{"]
    
  • 将字符序列转换为稀有字符,并在此基础上拆分:

    set pieces [split [string map [list "\} \{" "\uffff"] $yourString] "\uffff"]
    

  • 如果这是你的真实情况,为什么你不通过像这样附加开始和结束的大括号来制作一个完整的列表呢

    set a "alfa beta gama} {alfa} {gama"
    set b "\{$a\}"
    

    然后,您可以使用
    lindex

    引用这三个项目中的任何一个,如果这是您的具体情况,为什么不通过像这样附加开始和结束大括号来制作一个完整的列表呢

    set a "alfa beta gama} {alfa} {gama"
    set b "\{$a\}"
    
    然后,您可以使用
    lindex

    引用这三个项目中的任何一个,因为您已经这样做了

    设置b”\{$a\}

    变量b的值为 “{alfa beta gama}{alfa}{gama}”

    现在
    lindex$b 0
    ={alfa beta gama}
    lindex$b1
    ={alfa}
    lindex$b2
    ={gama}

    既然你这么做了

    设置b”\{$a\}

    变量b的值为 “{alfa beta gama}{alfa}{gama}”

    现在
    lindex$b 0
    ={alfa beta gama}
    lindex$b1
    ={alfa}
    lindex$b 2
    ={gama}

    其中一些高Unicode字符从未在实际文本中出现,因此非常适合拆分委托。一些高Unicode字符从未在实际文本中出现,因此非常适合拆分委托。