首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将单词之间的空格调整为"_“

将单词之间的空格调整为"_“
EN

Stack Overflow用户
提问于 2020-06-18 06:35:00
回答 2查看 397关注 0票数 1

有人能帮我把单词之间的空格调整为"_“(TCL)吗?

原行:

代码语言:javascript
复制
CTS__94331/I (DCCKBD8BWP240H11P57PDULVT)     0.025      0.002 &    0.352 r

要求线:

代码语言:javascript
复制
CTS__94331/I_(DCCKBD8BWP240H11P57PDULVT)     0.025      0.002_&    0.352_r

我尝试了下面的方法,但是每个空格都被替换为"“,我只想用一个空格替换为"”。

代码语言:javascript
复制
regsub -all {\s{1}} $a _
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-18 08:43:41

您需要在正则表达式中更狡猾,并使用不同的替换。

代码语言:javascript
复制
regsub -all {(\S)\s(?=\S)} $a {\1_}

正则表达式匹配(并捕获)一个非空格和一个空格,然后要求下一个字符是一个不匹配的非空格。这将被您匹配的第一个字符(用它本身替换)和下划线替换。

通常,对于这种情况,您会使用\y\s\y_,但这在用例中不起作用,因为它不能正确地处理0.002 & (&不是单词字符)。

如果Tcl的RE引擎支持查找约束(它不支持),这将更容易解决,因为您不需要在空间之前用自己替换字符的诡计。

票数 2
EN

Stack Overflow用户

发布于 2020-06-18 07:21:26

将单词之间的空格调整为"_“

在这种情况下,您可以考虑string map

代码语言:javascript
复制
% string map {" " "_"} {CTS__94331/I (DCCKBD8BWP240H11P57PDULVT)}
CTS__94331/I_(DCCKBD8BWP240H11P57PDULVT)

但是,您的示例数据不一致,而且我没有看到要替换多个空白的示例?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62443761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档