Пример ответов на вопросы EDI по программе Medicare - это то, что я пытаюсь сопоставить.
У меня есть строка, которая выглядит следующим образом:
LN:SMITHbbbbbbbbFN:SAMANTHAbbBD:19400515PD:1BN:123456PN:9876543210GP:ABCDEFGHIJKLMNOID:123456789012345bbbbbPC:123PH:8005551212CD:123456PB:123ED:20060101TD:2070101LC:NFI:12345678FE:20070101FT:20080101
Мне нужен набор совпадений, который выглядит следующим образом:
Key | Value
-------------------
LN | SMITHbbbbbbbb
FN | SAMANTHAbb
BD | 19400515
... etc
Я занимался этим весь день, и я не могу найти приемлемый сценарий соответствия. Я собираюсь запрограммировать это процедурно с помощью цикла for и найти индексы двоеточий, если я не могу что-то выяснить.
Я пытался использовать отрицательный взгляд , и я никуда не доберусь. Это C #, и я использую этот тестер (.Net) во время тестирования вместе с Regex Coach (не .Net).
Я пытался использовать это:
([\w]{2})\:(?![\w]{2}\:)
Но это соответствует только ключам и их двоеточиям, таким как "LN:", "FN:" и т. Д.
Если я использую:
([\w]{2})\:(.+?)([\w]{2})\:
Он также потребляет следующий соответствующий двухсимвольный ключ и двоеточие, в результате чего я сопоставляю только каждую другую пару ключ / значение.
Есть ли способ для меня, чтобы сопоставить их, используя RegEx в .Net правильно, или я застрял с более процедурным решением? Имейте в виду, я не могу предположить, что ключи всегда будут заглавными буквами. Они могут содержать числа, но они всегда будут двумя символами, а затем двоеточием.
Заранее спасибо за любую помощь, которую я могу получить.