>我有一个具有以下外观的文件:
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 ^[ -9]t
Replace with $0t
但是,这仅在我有一个数字时才有效,并且仅当它出现在第一列中时才有效。在我的示例中,它变为:
399tMISCtKAK/BARt0t0t0t0t0t0
2ttFOOtBARt0t0t0t0t0
但我希望它变成:
399ttMISCtKAK/BARt0tt0tt0tt0tt0tt0
2ttFOOtBARt0tt0tt0tt0tt0
即每个number sequence
后都有一个双选项卡。在我后来的输出中,我t
包含选项卡,因为我相信在编写实际输出时很难确定它是双选项卡还是单选项卡。
有谁知道我该如何实现这一目标?
使用以下正则表达式替换:
查找内容: [0-9]t
替换为:$0t
^
插入符号是 NPP 中行锚点的开头,仅当行首有一个数字后跟有一个制表符时,它才会允许您进行模式匹配。因此,[0-9]t
将匹配一行上任何位置的任何 1 位数字和它后面的t
。
详情:
[0-9]
- 匹配任何 ASCII 数字t
- 选项卡$0
- 引用整个匹配文本的反向引用
Search: d+t
Replace: $0t
表达式d+
匹配任何(不间断的)数字字符串,例如01446
。Notepad++ 6.0 或更高版本附带内置 PCRE 支持。