Regex 我需要一个正则表达式来修复在第80列拆分的行
问题-以分号分隔的多行文件在第79列或第80列被拆分(由于某些奇怪的原因,不总是相同的) 在我看来,正则表达式是合适的解决方案,所以现在我有两个问题 线路为:Regex 我需要一个正则表达式来修复在第80列拆分的行,regex,Regex,问题-以分号分隔的多行文件在第79列或第80列被拆分(由于某些奇怪的原因,不总是相同的) 在我看来,正则表达式是合适的解决方案,所以现在我有两个问题 线路为: 1sdf.............................mno[cr][lf] pqr........xyz......................[cr][lf] .....|.....|.....|.....|.....|.....|[cr][lf] 2sdf.............................mn
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......................
1sdf.............................mnopqr........xyz......................[cr][lf]
2sdf.............................mnopqr........xyz......................
通过3:
将\rxxx\n
替换为\r\n
//离开:
1sdf.............................mnopqr........xyz......................[cr]
xxx[lf]
2sdf.............................mnopqr........xyz......................
1sdf.............................mnopqr........xyz......................[cr][lf]
2sdf.............................mnopqr........xyz......................
剩下的清理工作也很琐碎
有没有办法一步到位?输出来自一个常见的金融应用程序,我宁愿自己修复这些文件,也不愿尝试让多个客户端调整它们的输出。假设
^\s*\r\n
与您上面所说的要删除的行匹配,我相信你可以用\r\n\s*\r\n | \r\n
替换\r\n
这是我的第一个正则表达式,所以如果它不起作用,不要太苛刻:-)
祝您好运在记事本++(使用正则表达式模式)中,您可以使用以下命令:
查找内容:\r\n(\s*\r\n)?
替换为:\1
然后只运行一次“全部替换”。但是!!否则,用正则表达式匹配
\r\n
在记事本++中不起作用。用捕获的组号替换\r\n\s*(\r\n)?
无效吗?(如果你告诉我们你使用的是哪种引擎/技术,我可能会亲自测试,并将其作为正确答案发布。)不。它替换了所有的换行,只剩下一行。我正在用记事本++玩它,但我可以根据需要调整口味。我刚刚测试过,它的工作原理有一个小警告。让我写一个答案…这不会按照要求删除三个\r\n
中的第一个。@m.buettner我希望它会被删除。这就是管道后面跟着附加的\n\r
的原因。它与第一个\r\n
匹配,但不会被替换。您可以将管道后面的\r\n
替换为\r\n
,使其保持原位。