String Tclsh:我可以对字符串使用split吗?

String Tclsh:我可以对字符串使用split吗?,string,split,tcl,String,Split,Tcl,在Tcl中,我想基于字符串分割缓冲区 i、 e 现在我想根据字符串say abc拆分缓冲区 因此,我的输出应该如下所示: { { def geh ijk lmn } { 123 rfs sdf } { asdfg sadfga}} 我试过用 set output [split $buffer "abc"] 但这会分别基于所有a、b、c字符分割字符串。split命令将其第二个参数视为一组要分割的字符。要获得您真正想要的,您需要从Tcllib中的包中获取splitx: package requi

在Tcl中,我想基于字符串分割缓冲区

i、 e

现在我想根据字符串say abc拆分缓冲区 因此,我的输出应该如下所示:

{ { def geh ijk lmn } { 123 rfs sdf } { asdfg sadfga}}
我试过用

set output [split $buffer "abc"]
但这会分别基于所有a、b、c字符分割字符串。

split命令将其第二个参数视为一组要分割的字符。要获得您真正想要的,您需要从Tcllib中的包中获取splitx:

package require textutil::split

textutil::split::splitx $buffer "abc"
如果您不知道实际拆分字符串中是否包含RE元字符(即几乎所有非字母数字),请使用“这确实是文字”魔法前缀:

textutil::split::splitx $buffer ***=$splitString
在上述两种情况下,对于特定的缓冲区字符串,第一项也将为空,表示拆分项位于缓冲区的前面。

split命令将其第二个参数视为要拆分的一组字符。要获得您真正想要的,您需要从Tcllib中的包中获取splitx:

package require textutil::split

textutil::split::splitx $buffer "abc"
set buffer "abc def geh ijk lmn abc 123 rfs sdf abc asdfg sadfga"
regsub "abc" $buffer "\n" string
split $string "\n"
如果您不知道实际拆分字符串中是否包含RE元字符(即几乎所有非字母数字),请使用“这确实是文字”魔法前缀:

textutil::split::splitx $buffer ***=$splitString
在上述两种情况下,对于您的特定缓冲区字符串,您还将得到一个空的第一项,表明拆分项位于缓冲区的前面

set buffer "abc def geh ijk lmn abc 123 rfs sdf abc asdfg sadfga"
regsub "abc" $buffer "\n" string
split $string "\n"