Xpoint
   [напомнить пароль]

Регулярное выражение для разбора SWIFT сообщений

Метки: [без меток]
2009-11-24 12:13:55 [обр] Top manager(0/2)[досье]

Есть некоторый текст SWIFT сообщения:

CS3B8HSFCQC80A1D3
//NM/МАРИЯ/МАРИЯ
/FM/АБИШОВА/АБИШОВА
//FT/БЕКМУРАТОВНА/БЕКМУРАТОВНА
//DT/12345678
//RNN/123456789012
/ASSIGN/www
eee
rrr
/PERIOD/102009

сделал регулярное выражение (Multiline), которое дает мне составляющие.

^/+(?<name>[\w]*)/(?<text>.*)$

Проблема: ни как не могу правильно выделить значение поля ASSIGN

спустя 17 часов [обр] Top manager(0/2)[досье]

Последняя версия выражения:

^/+([A-Z]+)/(.*)

все бы ничего, но по-прежнему не получается правильно выделить значение поля ASSIGN

CS3B8HSFCQC80A1D3
//NM/МАРИЯ/МАРИЯ
/FM/АБИШОВА/АБИШОВА
//FT/БЕКМУРАТОВНА/БЕКМУРАТОВНА
/DT/12345678
//RNN/123456789012
/ASSIGN/qqq
www
eee
/PERIOD/102009
спустя 4 часа 16 минут [обр] Top manager(0/2)[досье]
ответ найден, сделал в три захода в определено последовательности
List<Regex> listOfRx = new List<Regex>();
         listOfRx.Add(new Regex(@"^/+(?<name>(?!ASSIGN)[A-Z]+)/(?<text>.*)", RegexOptions.Multiline));
         listOfRx.Add(new Regex(@"^/+(?<name>ASSIGN)/(?<text>[\w\W]*)/[A-Z]+", RegexOptions.Multiline));
         listOfRx.Add(new Regex(@"/+(?<name>ASSIGN)/(?<text>.*)$", RegexOptions.Singleline));
Powered by POEM™ Engine Copyright © 2002-2005