正则表达式将新行插入特定位置的大块文本

时间:2009-02-11 15:01:08

标签: regex

我有一个相当大的文本文件,其中包含一堆缺少的换行符,这意味着它很乱。我需要把它分解成适当的行。

现在的文字看起来像这样:

12345 This is a chunk 23456 This is another chunk 34567 This is yet another chunk 45678 This is yet more chunk 56789 Yet another piece of text

我需要一个正则表达式,它会在每组五位数之前插入换行符(CR / LF对),结果如下:

12345 This is a chunk 
23456 This is another chunk 
34567 This is yet another chunk 
45678 This is yet more chunk 
56789 Yet another piece of text

它可以在第一组数字之前插入一个数字;我可以处理。

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:13)

非常简单(但不是“华而不实”,因为我懒得使用前瞻):

s/(\d{5})/\r\n\1/gs

答案 1 :(得分:5)

s/(?<=\D)(\d{5})(?=\D|$)/\n\1/g

在“\ n”与“\ r \ n”

它可能取决于手头的编程语言,但Perl和Python在\n上取代了\r\n,因此在这种情况下将\n替换为\r\n是错误的在上面的正则表达式中。