在Notepad ++中使用正则表达式查找并替换多个替换

时间:2018-04-10 14:05:40

标签: regex notepad++

我有一个文本文件,其中某些行的格式与其他行的格式不同。更确切地说:在这种类型的行中,字段写在9个字符上,而在其他行上,字段是7个字符长度。 (错误格式化)行的格式为: 第一个字段包含40个字符,然后是4个空格,然后是1个字符(字段名为note,例如字母'a',空格'或字母'b'),然后是4个空格。前面的序列4个空格+ 1个字符+4个空格(下面的例子)被重复多次:

    a    

这样的一行例如是:

                                            a        a        a        a        a        c        b        a        a        a        a        a    

由于这些线的特殊性,我得到了线之间的偏移:

                                           26     26     26     26     26     26     26     26     26     26     26    
                                            a        a        a        a        a        c        b        a        a        a        a    

我想摆脱2个不需要的空格,所以在我的线上,一个字段会变成7个字符宽,就像在其他字符中一样: 第一个字段包含40个字符,然后是3个空格,然后是1个字符(字段名为note,例如字母'a'),然后是3个空格。

我可以使用Notepad ++中的正则表达式找到这样一行:

Find what : ^ {40}(( {4})(?<note>.)( {4}))+

但是如何用4个空格+ 1个字符+ 3个空格替换4个空格+ 1个字符+4个空格的所有话语,以便每行的字段具有相同的长度?

替换后所需的格式例如是:

                                           26     26     26     26     26     26     26     26     26     26     26  
                                           a      a      a      a      a      c      b      a      a      a      a    

以下是偏移文件的更大摘录:

20/03/2018
H0917    26_LAV  0 Semaine     2 En service le 04 Septembre 2017 - TAD Partiel                                    11/07/2017 16:09 H0917     
Vertical           Notes
Montferrier-sur-Lez - Cirad de Baillargu                                                 Montferrier-sur-Lez - Cirad de Baillarguet                             
Montpellier Occitanie                                                                    Montpellier Occitanie                                                  
 26  Occitanie - Montferrier-sur-Lez          26  Montferrier-sur-Lez - Cirad de BaillarguMontpellier Occitanie                                       Montferrier-sur-Lez - Cirad de Baillarguet                  
########## VOYAGES
 0 Semaine    Montferrier-sur-Lez - Cirad de Baillarguet                  
                                           26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26   
                                                                                         a        a        a        a        a        c        b        a        a        a        a        a                                                                       a        a        a        a        a        

Occitanie                                 6:50   7:20   7:50   8:20   8:50   9:30  10:10  10:40  11:10  11:40  12:10  12:10  12:40  13:10  13:40  14:10  14:40  15:10  15:40  16:10  16:40  17:10  17:40  18:10  18:40  19:10  19:40  20:10  20:40  
Lycée Frédéric Bazille                    6:58   7:28   7:58   8:28   8:58   9:37  10:17  10:47  11:17  11:47  12:17  12:17  12:47  13:17  13:47  14:18  14:48  15:18  15:48  16:18  16:49  17:19  17:49  18:19  18:49  19:18  19:47  20:17  20:47  
La Lironde                                7:02   7:32   8:02   8:35   9:05   9:42  10:22  10:52  11:22  11:52  12:23  12:23  12:52  13:22  13:52  14:23  14:53  15:23  15:53  16:23  16:56  17:26  17:56  18:26  18:56  19:23  19:52  20:22  20:52  
Chemin Neuf                               7:07   7:37   8:07   8:40   9:10   9:47  10:27  10:57  11:27  11:57  12:28  12:28  12:57  13:27  13:57  14:28  14:58  15:28  15:58  16:28  17:01  17:31  18:01  18:31  19:01  19:28  19:57  20:27  20:57  
La Grand Font                             7:08   7:38   8:08   8:41   9:11   9:48  10:28  10:58  11:28  11:58  12:29  12:29  12:58  13:28  13:58  14:29  14:59  15:29  15:59  16:29  17:02  17:32  18:02  18:32  19:02  19:29  19:58  20:28  20:58  
Picadou                                   7:09   7:39   8:09   8:42   9:12   9:49  10:29  10:59  11:29  11:59  12:30  12:30  12:59  13:29  13:59  14:30  15:00  15:30  16:00  16:30  17:03  17:33  18:03  18:33  19:03  19:30  19:59  20:29  20:59  
Distillerie                               7:11   7:41   8:11   8:44   9:14   9:51  10:31  11:01  11:31  12:01  12:32  12:32  13:01  13:31  14:01  14:32  15:02  15:32  16:02  16:32  17:05  17:35  18:05  18:35  19:05  19:32  20:01  20:31  21:01  
Cirad de Baillarguet                      7:14   7:44   8:14   8:47   9:17   9:54  10:34  11:04  11:34  12:04  12:35  12:35  13:04  13:34  14:04  14:35  15:05  15:35  16:05  16:35  17:08  17:38  18:08  18:38  19:08  19:35  20:04  20:34  21:04  

正确的文件应该是:

20/03/2018
H0917    26_LAV  0 Semaine     2 En service le 04 Septembre 2017 - TAD Partiel                                    11/07/2017 16:09 H0917     
Vertical           Notes
Montferrier-sur-Lez - Cirad de Baillargu                                                 Montferrier-sur-Lez - Cirad de Baillarguet                             
Montpellier Occitanie                                                                    Montpellier Occitanie                                                  
 26  Occitanie - Montferrier-sur-Lez          26  Montferrier-sur-Lez - Cirad de BaillarguMontpellier Occitanie                                       Montferrier-sur-Lez - Cirad de Baillarguet                  
########## VOYAGES
 0 Semaine    Montferrier-sur-Lez - Cirad de Baillarguet                  
                                           26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26     26   
                                                                              a      a      a      a      a      c      b      a      a      a      a      a                                                       a      a      a      a      a        

Occitanie                                 6:50   7:20   7:50   8:20   8:50   9:30  10:10  10:40  11:10  11:40  12:10  12:10  12:40  13:10  13:40  14:10  14:40  15:10  15:40  16:10  16:40  17:10  17:40  18:10  18:40  19:10  19:40  20:10  20:40  
Lycée Frédéric Bazille                    6:58   7:28   7:58   8:28   8:58   9:37  10:17  10:47  11:17  11:47  12:17  12:17  12:47  13:17  13:47  14:18  14:48  15:18  15:48  16:18  16:49  17:19  17:49  18:19  18:49  19:18  19:47  20:17  20:47  
La Lironde                                7:02   7:32   8:02   8:35   9:05   9:42  10:22  10:52  11:22  11:52  12:23  12:23  12:52  13:22  13:52  14:23  14:53  15:23  15:53  16:23  16:56  17:26  17:56  18:26  18:56  19:23  19:52  20:22  20:52  
Chemin Neuf                               7:07   7:37   8:07   8:40   9:10   9:47  10:27  10:57  11:27  11:57  12:28  12:28  12:57  13:27  13:57  14:28  14:58  15:28  15:58  16:28  17:01  17:31  18:01  18:31  19:01  19:28  19:57  20:27  20:57  
La Grand Font                             7:08   7:38   8:08   8:41   9:11   9:48  10:28  10:58  11:28  11:58  12:29  12:29  12:58  13:28  13:58  14:29  14:59  15:29  15:59  16:29  17:02  17:32  18:02  18:32  19:02  19:29  19:58  20:28  20:58  
Picadou                                   7:09   7:39   8:09   8:42   9:12   9:49  10:29  10:59  11:29  11:59  12:30  12:30  12:59  13:29  13:59  14:30  15:00  15:30  16:00  16:30  17:03  17:33  18:03  18:33  19:03  19:30  19:59  20:29  20:59  
Distillerie                               7:11   7:41   8:11   8:44   9:14   9:51  10:31  11:01  11:31  12:01  12:32  12:32  13:01  13:31  14:01  14:32  15:02  15:32  16:02  16:32  17:05  17:35  18:05  18:35  19:05  19:32  20:01  20:31  21:01  
Cirad de Baillarguet                      7:14   7:44   8:14   8:47   9:17   9:54  10:34  11:04  11:34  12:04  12:35  12:35  13:04  13:34  14:04  14:35  15:05  15:35  16:05  16:35  17:08  17:38  18:08  18:38  19:08  19:35  20:04  20:34  21:04  

感谢您的帮助, 于连

1 个答案:

答案 0 :(得分:1)

你的问题有点不清楚,但这让事情符合我的要求:

 ([^ ]) 
\1

注意前面有一个空格,后面有一个括号。这将删除每个单个非空格字符之前和之后的一个空格。它忽略了26s,因为它们是两个非空格字符,所以替换所有作品。