regex - 如何使用正则表达式格式化此 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|||
我可以对文件进行多次传递以获得所需的最终结果。
解决方案
我已经帮助您解决了您之前的问题,所以我现在将重点关注您文件的第一部分。
您可以使用此正则表达式:
\n|\b(?=Period)
并|
用作替换字符串
如果你不想要之前的空格Period
,那么你可以使用:
\n|\s(?=Period)
推荐阅读
- javascript - 从 jqgrid 获取特定数据
- cordova - 使用 Firestore 的 Cordova 应用程序无法在某些设备上运行
- c# - C# 绘制简单连接对象的图表
- java - Java 计数器问题
- node.js - 用于链式方法的 Sinon 存根
- angular - (角度)输入文本事件绑定与双向绑定之间是否有任何性能改进?
- python - 从主文件夹的子文件夹中随机提取文件
- javascript - 如何循环对象数组以根据另一个字符串数组过滤掉
- python-3.x - 字典到 csv 只会产生不完整/不正确的数据
- android - Xposed - 我可以打印内部类方法,但方法挂钩不起作用