首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将*.txt文件(复制/粘贴变量)转换为表格格式

如何将*.txt文件(复制/粘贴变量)转换为表格格式
EN

Stack Overflow用户
提问于 2019-01-18 13:51:13
回答 1查看 109关注 0票数 2

我有一堆变量(大约80个),我将这些变量copy+paste到编辑器中(从不同的*.txt文件中获取这些变量)。在这之后,它看起来有点凌乱

代码语言:javascript
运行
复制
ka15 1-2 tre15 3-4 hsha15 5
juso15 6
kl15 7-9 kkjs15 10

但是我想让它结构化,以便更好地了解代码中发生的事情。我还必须从每个变量中去掉15。理想情况下我会得到这样的东西

代码语言:javascript
运行
复制
ka     1-2   tre   3-4   hsha   5
juso   6     kl    7-9   kkjs   10

有什么聪明的方法来实现这一点吗?我使用的是,SAS企业指南编辑器,VSCode,但是找不到方法。例如,当我找到并替换15时,我希望我可以用一个选项卡替换它,但是在这两个编辑器中都找不到该选项。有什么想法可以让这一切自动化吗?或者至少不是手工完成所有事情?

EN

回答 1

Stack Overflow用户

发布于 2019-01-22 09:21:32

我已经想出了3种能做你想做的事的regex。为了按顺序运行它们,您将需要重新替换扩展或类似的。

这在你的设置中是:

代码语言:javascript
运行
复制
"regreplace.on-save": false,

"regreplace.commands": [
  {
    "name": "Transform Data to Table Format, step 1",
    "regexp": "([a-zA-Z]+|[\\d-]+)(15)?(\\s[\r\n]?)*", 
    "replace": "$1      \n",
    "priority": 1,      
  },
  {
    "name": "Transform Data to Table Format, step 2",
    "regexp": 
      "(([\\S-] {6})(.*))|(([\\S-]{2} {5})(.*))|(([\\S-]{3} {4})(.*))|(([\\S-]{4} {3})(.*))",
    "replace": "$2$5$8$11",
    "priority": 2,
  },
  {
    "name": "Transform Data to Table Format, step 3",
    "regexp": 
      "((.*)\n)((.*)\n)((.*)\n)((.*)\n)((.*)\n)((.*?)(\\s*\\n))",
    "replace": "$2$4$6$8$10$12\n",
    "priority": 3,
  }
],

它为三个regex步骤中的每个步骤创建一个规则。所有三个规则都可以通过运行regreplace.regreplace命令依次运行。下面是一个演示:

regex的设计看起来很好,数据项长达4个字符,但是可以很容易地对较长的项进行修改。

在步骤1中,将替换规则中\n之前的空格数增加到16左右。

在第2步中,您必须感知regex组(如(([\\S-]{4} {3})(.*) )的模式来修改它们。一个13个字符长的变量可能需要一些东西,比如(([\\S-]{13} {3})(.*)作为最后一个组,([\\S-] {15})(.*))作为序列中的第一个,等等,按顺序修改所有其他组。如果你需要帮助的话请告诉我。

步骤3不需要修改,除非您想要更改每行上出现了多少数据项--现在,每一行上有3个变量及其数据,因此在该正则表达式中有6个组。

在运行命令之前,在任何行中有多少个数据值对并不重要。

[两项警告:在数据开始之前不应该有任何空行,但如果有必要,可以将正则表达式作为删除空行的第一条规则。数据内部或末尾的空行都不是问题。

其次,扩展不能只在选定的文本上运行,因此您必须将数据放在一个空文件的顶部来转换它,然后如果您愿意,可以将它复制到其他地方。]

还有一个替换规则扩展,它的工作方式类似于重新替换,但是根据文档,它只运行在一个选择上,但是由于一些未知的原因,它对我来说不起作用。不过,它确实有一个更好的界面--所有regex都可以进入一个规则,然后可以独立运行。

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

https://stackoverflow.com/questions/54255395

复制
相关文章

相似问题

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