首页 > 解决方案 > 如何使用正则表达式格式化此 txt 文件中的前 7 行

问题描述

我有一个文本文件,其数据格式如下。弄清楚如何格式化文件的第二部分以将其格式化以上传到数据库表中。碰壁试图让前 7 行以相同的方式格式化。

如果它不是很明显,我试图让它用完全相同的列数分隔,所以我可以轻松地将它上传到数据库。

Year: 2019 Period: 03
Office: NY
Dept: Sales
Acct: 111222333
SubAcct: 11122234-8
blahblahblahblahblahblahblah
Status: Pending
1000
AAAAAAAAAA
100,000.00
2000
BBBBBBBBBB
200,000.00
3000
CCCCCCCCCC
300,000.00
4000
DDDDDDDDDD
400,000.00

一些好心人回答了我关于底部的问题,使用以下代码我可以将其格式化为如下所示 -

(.*)\r?\n(.*)\r?\n(.*)(?:\r?\n|$)

substitute with |||||||$1|$2|$3\n

|||||||1000|AAAAAAAAAA|100,000.00
|||||||2000|BBBBBBBBBB|200,000.00
|||||||3000|CCCCCCCCCC|300,000.00
|||||||4000|DDDDDDDDDD|400,000.00

只需要帮助格式化顶部 - 看起来像这样,因此整个文件与完全相同的列数匹配。

Year: 2019|Period: 03|Office: NY|Dept: Sales|Acct: 111222333|SubAcct: 11122234-8|blahblahblahblahblahblahblah|Status: Pending|||

我可以对文件进行多次传递以获得所需的最终结果。

标签: regex

解决方案


我已经帮助您解决了您之前的问题,所以我现在将重点关注您文件的第一部分。

您可以使用此正则表达式:

\n|\b(?=Period)

工作演示

|用作替换字符串

如果你不想要之前的空格Period,那么你可以使用:

\n|\s(?=Period)

推荐阅读