在Tcl中,我想基于字符串拆分缓冲区。
IE,
set buffer "abc def geh ijk lmn abc 123 rfs sdf abc asdfg sadfga"
现在,我想根据字符串“ abc”分割缓冲区,因此我的输出应如下所示:
{ { def geh ijk lmn } { 123 rfs sdf } { asdfg sadfga}}
我尝试使用,
set output [split $buffer "abc"]
但这会根据所有a,b,c字符分别分割字符串。
该split
命令将其第二个参数视为要分割的一组字符。要获得您真正想要的东西,您需要splitx
从textutil::split
Tcllib中的软件包中获得:
package require textutil::split
textutil::split::splitx $buffer "abc"
如果您不知道您的实际拆分字符串中是否包含RE元字符(即,几乎所有非字母数字字符),请使用“这确实是字面的”魔术前缀:
textutil::split::splitx $buffer ***=$splitString
(在上述两种情况下,都有特定的缓冲区字符串,最后还会有一个空的第一项,表明拆分项位于缓冲区的前面。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句