Regex 用于解除MT940消息的正则表达式

Regex 用于解除MT940消息的正则表达式,regex,regex-greedy,Regex,Regex Greedy,我得到了一条结构如下的消息,消息从tag:20开始,到:86结束。我想写一个正则表达式来提取所有消息。 我会编写一个C#实用程序来提取每条消息并将其放入ArrayList中 :20:160212-2359 :21:600******444 :28C:00001/00001 . . . :86:DAILY SETTLEMENT /ENTRY-13 MAR :62F:D160212GBP1229387,45 :64:D160212GBP1229387,45 :65:D120314GBP1229387

我得到了一条结构如下的消息,消息从tag:20开始,到:86结束。我想写一个正则表达式来提取所有消息。 我会编写一个C#实用程序来提取每条消息并将其放入ArrayList中

:20:160212-2359
:21:600******444
:28C:00001/00001
.
.
.
:86:DAILY SETTLEMENT /ENTRY-13 MAR
:62F:D160212GBP1229387,45
:64:D160212GBP1229387,45
:65:D120314GBP1229387,45
:65:D120315GBP1229387,45
:65:D120316GBP1229387,45
:65:D120317GBP1229387,45
:65:D120318GBP1229387,45
:86:FORWARD AVAILABLE FUNDS SHOW ITEMS KNOWN BUT NOT YET POSTED
some more comments in 86_2 segment 
this is line2
:20:160212-2359
:21:B***22
:25:60*****88
.
.
.
:86:/ENTRY-13 MAR TRF/REF 6*******64 /ORD/ some line here 
*********************** /BNF/ JO 88
:62F:C160212EUR13868931,00
:64:C160212EUR13868931,00
:65:C120314EUR13868931,00
:65:C120315EUR13791849,00
:65:C120316EUR13791849,00
:65:C120317EUR13791849,00
:65:C120318EUR13791849,00
:86:FORWARD AVAILABLE FUNDS SHOW ITEMS KNOWN BUT NOT YET POSTED
some more comments in 86_2 segment.
:20:160212-2359
:21:B****X
:25:6*************1
:28C:00001/00001
:86:STORE1 EUROPE B.V. /ENTRY-15 MAR RTS/REF 6*****6 RTS 
SWEPT FROM 9999 1**** XX***********BILLING CHARGES - 
28FEB12 TRF/REF 6641XXX43799053 /ITEMCNT/004 /BNF/ /ITEMCNT/004 
BILLING CHARGES
:61:1203130313DR10000000,00****288//6*****6
:86:STORE1 CNRTY SRL /ENTRY-13 MAR CLG/REF 66**********6
:61:1*****000,00NT*****9846//6******74
:86:NAME /ENTRY-13 MAR CLG/REF 6******4 LA C****R 
**** CASH DEPOSIT STORE1
:61:1203150315DR48531,00NCHGBILLING CHARGES//6641XXX43799053
:86:BILLING CHARGES - 28FEB12 /ENTRY-15 MAR TRF/REF 
66******53 /ITEMCNT/004
:62F:C160212EUR0,00
:64:C160212EUR0,00
:65:C120314EUR0,00
:65:C120315EUR0,00
:65:C120316EUR0,00
:65:C120317EUR0,00
:65:C120318EUR0,00
:86:FORWARD AVAILABLE FUNDS SHOW ITEMS KNOWN BUT NOT YET POSTED
{newline}
实际值替换为“*”字符

谢谢 Dhiraj Bhavsar

试试这个

:20:(.*?):86:
编码

/:20:(.*?):86:/gs

*?
匹配零次和无限次之间的任何字符,匹配次数尽可能少,根据需要扩展

:20:(.*?):86:
编码

/:20:(.*?):86:/gs


*?
匹配零次和无限次之间的任何字符,尽可能少地匹配,根据需要扩展

@Trim007:My抱歉,早些时候我忘了在消息中提及该段:86:repeats。@Trim007:My抱歉,早些时候我忘了在消息中提及该段:86:repeats。