0

问题 - 多行、分号分隔的文件在第 79 列或第 80 列被拆分(由于某些奇怪的原因并不总是相同)。

在我看来,正则表达式是合适的解决方案,所以现在我有两个问题。

线路是:

1sdf.............................mno[cr][lf]
pqr........xyz......................[cr][lf]
.....|.....|.....|.....|.....|.....|[cr][lf]
2sdf.............................mno[cr][lf]
pqr........xyz......................[cr][lf]
.....|.....|.....|.....|.....|.....|[cr][lf]
3sdf.............................mno[cr][lf]
pqr........xyz......................[cr][lf]
.....|.....|.....|.....|.....|.....|[cr][lf]
4sdf.............................mno[cr][lf]
pqr........xyz......................[cr][lf]
.....|.....|.....|.....|.....|.....|[cr][lf]
... 10000 rows ...

管道是非空格空白字符(可能是制表符)

我需要:

1sdf.............................mnopqr........xyz......................[cr][lf]
2sdf.............................mnopqr........xyz......................[cr][lf]
3sdf.............................mnopqr........xyz......................[cr][lf]
4sdf.............................mnopqr........xyz......................[cr][lf]

我设法完成了工作

第 1 遍: 替换^\s*\r\n\rxxx\n

// 将空行替换为 \rxxx\n 离开

1sdf.............................mno[cr][lf]
pqr........xyz......................[cr][lf]
[cr]xxx[lf]
2sdf.............................mno[cr][lf]
pqr........xyz......................[cr][lf]

第 2 遍:替换\r\n为 [empty] //离开:

1sdf.............................mnopqr........xyz......................[cr]
xxx[lf]
2sdf.............................mnopqr........xyz......................

通过 3:替换\rxxx\n\r\n

//离开:

1sdf.............................mnopqr........xyz......................[cr][lf]
2sdf.............................mnopqr........xyz......................

其余的清理工作是微不足道的。

有什么方法可以一步完成吗?输出来自一个常见的金融应用程序,我宁愿自己修复文件,也不愿尝试让多个客户调整他们的输出。

4

2 回答 2

1

在记事本++(使用正则表达式模式)中,您可以使用:

找什么:\r\n(\s*\r\n)?

用。。。来代替:\1

然后只运行一次“全部替换”。但是,请确保您更新到 Notepad++ 6!否则,与正则表达式匹配\r\n将无法在 Notepad++ 中工作。

于 2012-10-12T12:55:16.797 回答
0

假设^\s*\r\n与您上面所说的要删除的行匹配,我相信您可以通过替换来做到这\r\n\s*\r\n|\r\n一点\r\n

这是我的第一个正则表达式,所以如果它不起作用,不要太苛刻:-)

祝你好运

于 2012-10-11T23:49:28.237 回答