正则表达式找到字符串并替换该行和后续行

时间:2017-10-05 12:22:54

标签: javascript regex replace find

我正在尝试找到一个正则表达式来实现我需要在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)。

这是否真的可以使用正则表达式? 我知道如何找到一个字符串并替换字符串所在的同一行。但是这里要删除多行,这对我来说很难。

如果可以使用正则表达式,请有人帮助我。

1 个答案:

答案 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);