在Notepad ++中使用REGEX替换一个数字后跟一个选项卡保留数字并添加第二个选项卡

时间:2017-06-27 12:20:29

标签: regex tabs notepad++

我有一个带有此外观的文件:

399 MISC    KAK/BAR  0     0    0   0   0   0           
2   FOO     BAR      FOO   0    0   0   0   0   0

其中每个空格都是实践中的标签

我想删除字符串中的所有标签,以便稍后使用tab delimiter将文件导入Excel。

为此,我的想法是用保留数字的标签替换以标签结尾的每个数字,但添加一个额外的标签。然后我想

replace \t with(即一步空白)

第一步,要在结束序列的每个数字后面添加一个额外的标签,我尝试使用Replace使用REGEX

Search for ^[\0-9]\t
Replace with $0\t

但这仅在我有一个数字时才有效,并且只有当它出现在第一列时才有效。在我的例子中它变成:

399\tMISC\tKAK/BAR\t0\t0\t0\t0\t0\t0            
2\t\tFOO\tBAR\t0\t0\t0\t0\t0

但我希望它成为:

399\t\tMISC\tKAK/BAR\t0\t\t0\t\t0\t\t0\t\t0\t\t0            
2\t\tFOO\tBAR\t0\t\t0\t\t0\t\t0\t\t0

即。每个number sequence后有一个双标签。在我后来的输出中,我将选项卡包含为\t,因为我相信在编写实际输出时很难确定它是双选还是单选项卡。

难道我不知道如何实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

使用以下正则表达式替换:

查找内容[0-9]\t
替换为$0\t

^插入符号是NPP中的行锚点的开头,如果在行开头有一个数字后面只有一个数字,它只会让你模式匹配。因此,[0-9]\t将匹配任意1个数字,并在任何位置之后匹配\t

<强>详情:

  • [0-9] - 匹配任何ASCII数字
  • \t - 标签
  • $0 - 引用整个匹配文本的反向引用

答案 1 :(得分:0)

Search:  \d+\t
Replace: $0\t

表达式\d+匹配任何(不间断的)数字字符串,例如01446。 Notepad ++ 6.0或更高版本附带内置PCRE支持。