我正在尝试找到一个正则表达式来实现我需要在javascript中使用的以下条件。
输入文件
这里有一些字符串,在这一行之上 :62M:C111111EUR1211498,00
:20:0000/11111000000
:25:1111111111
:28C:00001/00002
:60M:C170926EUR1211498,06
:61:1710050926C167,XXNCHKXXXXX 11111 // 111111/111111
输出必须是
这里有一些字符串,在这一行之上 :61:1710050926C167,XXNCHKXXXXX 11111 // 111111/111111
简单地说,找到:62M:然后替换(并删除)以:62M开头的行:后跟以:20:,:25:,:28c:和:60M :.
开头的行或者,找到:62M:并替换(并删除)直到以:61:开头的行。
每行的固定长度为80个字符,后跟换行符(CR LF)。
这是否真的可以使用正则表达式? 我知道如何找到一个字符串并替换字符串所在的同一行。但是这里要删除多行,这对我来说很难。
如果可以使用正则表达式,请有人帮助我。
答案 0 :(得分:0)
在这里。首先,我发现要使用正则表达式删除文本(请注意,我使用[^]*
来匹配.*
所有的行,因为它也匹配换行符。然后我用换行符替换它。
var regex = /:62M:.*([^]*):61:.*/;
var text = `some string is here and above this line
:62M:C111111EUR1211498,00
:20:0000/11111000000
:25:1111111111
:28C:00001/00002
:60M:C170926EUR1211498,06
:61:1710050926C167,XXNCHKXXXXX 11111//111111/111111`;
var textToDelete = regex.exec(text)[1];
var result = text.replace(textToDelete, '\n');
console.log(result);