Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何使用正则表达式格式化此txt文件中的前7行_Regex - Fatal编程技术网

Regex 如何使用正则表达式格式化此txt文件中的前7行

Regex 如何使用正则表达式格式化此txt文件中的前7行,regex,Regex,我有一个文本文件,数据格式如下。了解了如何格式化文件的第二部分,以便将其上载到db表中。撞到墙上,试图让前7行以相同的方式格式化 如果不明显,我会尝试使用完全相同的列数对其进行管道分隔,以便可以轻松地将其上载到db Year: 2019 Period: 03 Office: NY Dept: Sales Acct: 111222333 SubAcct: 11122234-8 blahblahblahblahblahblahblah Status: Pending 1000 AAAAAAAAAA

我有一个文本文件,数据格式如下。了解了如何格式化文件的第二部分,以便将其上载到db表中。撞到墙上,试图让前7行以相同的方式格式化

如果不明显,我会尝试使用完全相同的列数对其进行管道分隔,以便可以轻松地将其上载到db

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)

并使用
|
作为替换字符串

如果您不想在
句点
之前使用上一个空格,则可以使用:

\n|\s(?=Period)

谢谢你,费德里科!!如果你能看看-1,有两件事。如何仅将此模式应用于前7行(因为其余行已格式化)。如何在其末尾添加3个管道符号(这样整个txt文件将具有相同的列数)。非常感谢!