2017-10-05 22 views
-2

我想找到一個正則表達式來實現以下標準,我需要在JavaScript中使用。正則表達式找到字符串,並替換該行和以下行

輸入文件

一些字符串是在這裏,這條線以上
:62M:C111111EUR1211498,00
:20:0000/11111000000
:25:1111111111
:28C:00001/00002
:60M:C170926EUR1211498,06
:61:1710050926C167,XXNCHKXXXXX 11111 //十一萬一千一百十一分之十一萬一千一百十一

輸出必須是

一些字符串是在這裏,這個線路
以上:61:1710050926C167,XXNCHKXXXXX 11111 //十一萬一千一百十一分之一十一萬一千一百十一

簡言之,發現:62M:然後更換(和刪除)以62M開始的行:緊接着以20 :,:25 :, 28c:和60M:開頭的行。

或者找到:62M:並替換(和刪除),直到以61:開頭的行。

每一行的固定長度爲80個字符,後跟換行符(CR LF)。

這真的可能與正則表達式? 我知道如何找到一個字符串,並替換字符串所在的同一行。但是這裏有多條要刪除的行,這對我來說很難。

如果有可能用正則表達式,請有人幫助我。

+0

這篇文章應該有所幫助:https://www.w3schools.com/jsref/jsref_obj_regexp.asp – Maxim

回答

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