在特定条件下删除换行符和制表符

2024-06-25 22:49:40 发布

您现在位置:Python中文网/ 问答频道 /正文

请帮我回答两个问题:

1)我有一个很长的文件,它的结构如下-行应该以500开头。但是,有些线路不是以500开头(2号线、4号线),应该与上面的线路合并(因此2号线与1号线等)。如何在python(2.7)中轻松实现它?你知道吗

2)您还可以看到,我有许多制表符在中间-我如何删除不需要的制表符,然后将制表符替换为管道或分号,以便文件可以加载到数据库?通常一个选项卡对应一列。你知道吗

输入

Line 1: 500  94449  YUUUII  VP      0017A4775           
YPAYREQ
Line 2: BOS                 MA                                                                                                                                                          
5           0.00             1,000.00              0.00            0.00               
0.00                 0.00                    0.00                  0.00                
0.00
Line 3: 500  98220  YPO_INV KP      0017A4775           
YNOUINU
Line 4: MARTHJJIU                                                                                                                                                                               
5       8,000.00             8,000.00              0.00            0.00               
0.00                 0.00                    0.00                  0.00                                                 
C4

预期产量:

Line 1: 500;94449;YUUUII;VP;0017A4775;YPAYREQ;BOS;  
MA;5;0.00;1,000.00;0.00;.00;0.00;0.00;0.00;0.00;0.00
Line 2: 500;98220;YPO_INV;KP;0017A47758;YNOUINU;
MARTHJJIU;;5;8,000.00;8,000.00;0.00;0.00;0.00;0.00;0.00;0.00;C4

Tags: 文件line制表符线路bosinvkpma
1条回答
网友
1楼 · 发布于 2024-06-25 22:49:40

只要在multiline mode中用;替换\s+(?!\s|^500)。你知道吗

\s+(?!\s|^500)匹配一个或多个空格字符,这些字符在行首没有后跟另一个空格或子字符串500。你知道吗

例如:https://regex101.com/r/OJsAob/2

相关问题 更多 >