请告诉我用逗号替换多个空格的方法,例如输入字符串
set string "boy cat dog girl man"
字符串之间可以有多个空格,例如 8 在 boy 和 cat 之间,4 在 dog 和 girl 之间
我想要它boy,cat,dog,girl,man
请告诉我用逗号替换多个空格的方法,例如输入字符串
set string "boy cat dog girl man"
字符串之间可以有多个空格,例如 8 在 boy 和 cat 之间,4 在 dog 和 girl 之间
我想要它boy,cat,dog,girl,man
这真的很简单:您只需要使用regsub
,它基于正则表达式执行替换。
set string "boy cat dog girls man"
regsub -all {\s+} $string ,
你得到
boy,cat,dog,girls,man
\s
匹配单个空格,+
表示前一个原子的一个或多个,因此组合给出一个或多个空格。
我们不必做这么多的工作..试试这个...加入将完成您的全部工作..不要拆分..只需加入...
set string "boy cat dog girl man"
set string [join $string ,]
另一种解决方案是将split
原始(空格分隔)字符串分隔成单词列表,并join
制作逗号分隔字符串
set original "boy cat dog girl man"
set l [split $original]
set final [join $l ,]
这适用于您的示例,但不会处理原始字符串与 Tcl 的列表概念不正确对应的情况。它也无法应对转换,例如,
boy cat dog girl man "Aunt Sally"
进入
boy,cat,dog,girl,man,"Aunt Sally"
如果您想处理这种情况,请查看csv包 - 特别csv::split
是csv::join
.