我有一个文本文件,其中某些行的格式与其他行的格式不同。更确切地说:在这种类型的行中,字段写在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
感谢您的帮助, 于连
答案 0 :(得分:1)
你的问题有点不清楚,但这让事情符合我的要求:
([^ ])
\1
注意前面有一个空格,后面有一个括号。这将删除每个单个非空格字符之前和之后的一个空格。它忽略了26s,因为它们是两个非空格字符,所以替换所有作品。