在Notepad++中删除第一列

8

我有这个文件:

 206  06:06:00.00   X               "Регион -2.00"                   00:02:00.00                    
 282  06:50:00.00   X               "Регион -1.00"                   00:01:00.00                    
 353  07:27:00.00   X               "Регион -1.00"                   00:01:00.00                    
 435  08:20:00.00   X               "Регион -1.00"                   00:01:00.00                    
 482  08:39:00.00   X               "Регион -1.00"                   00:01:00.00                    
 521  09:16:00.00   X               "Регион -1.00"                   00:01:00.00                    
 667  10:42:00.00   X               "Регион -2.00"                   00:02:00.00                    
 896  12:54:00.00   X               "Регион -1.30"                   00:01:30.00                    
1003  13:57:00.00   X               "Регион -1.30"                   00:01:30.00                    
1154  15:29:00.00   X               "Регион -2.00"                   00:02:00.00                    
1272  16:23:00.00   X               "Регион -1.00"                   00:01:00.00                    
1309  16:57:00.00   X               "Регион -1.30"                   00:01:30.00                    
1401  17:49:00.00   X               "Регион -2.00"                   00:02:00.00                    
1434  18:07:00.00   X               "Регион -2.00"                   00:02:00.00                    
1514  18:43:00.00   X               "Регион -2.00"                   00:02:00.00                    
1581  19:19:00.00   X               "Регион -1.30"                   00:01:30.00                    
1846  21:52:00.00   X               "Регион -1.30"                   00:01:30.00                    
1918  22:26:00.00   X               "Регион -1.00"                   00:01:00.00                    
1963  22:46:00.00   X               "Регион -1.00"                   00:01:00.00    

非四位数前有空格,例如第一行的"206"实际上是像这样开始的:" 206"

我需要去掉第一列,所以我只需要

06:06:00.00 X "Регион -2.00" 00:02:00.00

对于第一行,以此类推。

我试过使用Ctrl+H和正则表达式来尝试解决问题,但总是会删掉整行。

如果你有其他解决方案,而不是Notepad++,那也可以。我选择Notepad++的原因是这不是一个原始文件,并且经过了一些格式处理(删除所有不包含“Регион -”的行),所以在一个地方完成所有操作会更容易。

7个回答

22

使用Alt+Shift+导航键或Alt+Shift+单击来选择整列,然后按下Del即可。


这可以通过宏来实现,非常有趣。 - Casimir et Hippolyte

4

在notepad++中尝试使用这个正则表达式替换:

search: ^\s*[0-9]+\s+
replace: nothing

如果您想同时删除所有不包含“Регион -”的行,可以将模式更改为:

search: ^(?!.*Регион -).*\r?\n?|^\s*[0-9]+\s+

3

以下是一种方法:

search what: ^.{5}
replace with: 'nothing'

这对第一组数字不起作用,因为它们的初始数字只有三位。 - Darren Crabb
@DarrenCrabb 这只对第一个有效。. {5}匹配任意5个字符(除了换行符),但^仅匹配输入的开头(除非启用多行模式)。 - The Guy with The Hat
是的,但我以为 {5} 意味着它必须是五个字符....第一组行只有四个字符需要被替换,而不是 5。 - Darren Crabb
@DarrenCrabb 空格也算字符。 - The Guy with The Hat
抱歉...我没有注意到第一个数字前的空格。 - Darren Crabb

3

这个答案将删除第一列,并删除不包含您搜索字符串的行。

首先,先删除第一列。

   查找内容:      ^[ 0-9]+\s+(.*)
   替换为: \1

接下来,删除不包含所需字符串的行。由于Notepad ++使用的正则表达式引擎不允许使用not运算符,因此( ?! ...)选项不起作用。相反,您需要分几步进行操作。

第一步 - 添加一个前缀到包含所需内容的行。

   查找内容:      (.*KeepLinesWithThisString.*)
   替换为: ZZZ\1

第二步 - 删除不以该前缀开头的行。

我们知道没有该前缀的字符串将以数字或空格开头,因此可以清空这些行

   查找内容:      ^[ 0-9]+\s+(.*)
   替换为: (留空/保持空白)

第三步 - 删除前缀

   查找内容:      ^ZZZ(.*)
   替换为: \1

第四步 - 删除空行

   突出显示整个文档的所有文本。 ctrl+aEdit > Select All
   TextFX > TextFX Edit > Delete Blank Lines
   TextFX > TextFX Edit > Delete Surplus Blank Lines


1

1

尝试搜索以下内容:

"^[ 0-9]{6}"

(不带引号)

然后用以下内容替换它:

""

(不带引号)


0

另一种方法是先去掉前导空格编辑->空白操作->去除前导空格
然后搜索^\d+,替换为空。然后再次去掉空格。这可能需要更多的步骤,但这是一种方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接