我有一个如下所示的 ASCII 表:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| |NUMBR |IDENT |YEAR |STS |WHES |APA |TAMS |AMOUNT |ANOTHERAM |DESCIB |ACCO |NUM |ID |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| |99 |5471140100|2174 |002 |31 |S |T | 245,42 | 245,42 |*SOMEING INFORMATION 084112-378515|What. Estimation|000038780 | |0001038780 |
| |99 |5471140100|2174 |002 |31 |S |T | 245,42 | 245,42 |*SOMEING INFORMATION|084112-378515-What. Estimation|000038780 | |0001038780 |
| |99 |5471140100|2174 |002 |31 |S |T | 245,42 | 245,42 |*SOMEING|INFORMATION 084112-378515-What. Estimation|000038780 | |0001038780 |
我的问题是,在“DESCIB”列中,有时会像分隔符一样处理管道(如果我在 python 中导入此文件),但它们不是。
我想用空格替换它们,但我的问题是我不知道“|”的确切位置。我只知道'DESCIB' 列有 51 个字符长。
我在 Notepad++ 中尝试了正则表达式,但我不知道该怎么做。
最终结果应如下所示:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| |NUMBR |IDENT |YEAR |STS |WHES |APA |TAMS |AMOUNT |ANOTHERAM |DESCIB |ACCO |NUM |ID |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| |99 |5471140100|2174 |002 |31 |S |T | 245,42 | 245,42 |*SOMEING INFORMATION 084112-378515 What. Estimation|000038780 | |0001038780 |
| |99 |5471140100|2174 |002 |31 |S |T | 245,42 | 245,42 |*SOMEING INFORMATION 084112-378515-What. Estimation|000038780 | |0001038780 |
| |99 |5471140100|2174 |002 |31 |S |T | 245,42 | 245,42 |*SOMEING INFORMATION 084112-378515-What. Estimation|000038780 | |0001038780 |
先感谢您。
@EDIT:我起初尝试过,但问题是我必须知道“|”的位置:
(\*.{33})\|(.{15}\|)
然后我尝试了这样的事情:(\*.{50})(?![|])
它背后的想法是:寻找一个以“*”开头并有另外 50 个字符的字符串。在该匹配中替换任何管道“|”。但是,这不是正确的用法,但我不知道该怎么做。