Medicare 资格 EDI 示例响应是我想要匹配的内容。
我有一个看起来像这样的字符串:
LN:SMITHbbbbbbbbFN:SAMANTHAbbBD:19400515PD:1BN:123456PN:9876543210GP:ABCDEFGHIJKLMNOID:123456789012345bbbbbPC:123PH:8005551212CD:123456PB:123ED:20060101TD:2070101LC:NFI:12345678FE:20070101FT:20080101
我需要一组看起来像这样的匹配:
钥匙 | 价值 ------------------ LN | SMITHbbbbbbbb FN | 萨曼莎 BD | 19400515 ... ETC
我整天都在处理这个问题,我似乎无法得到一个可接受的匹配方案。如果我想不通,我将使用 for 循环对它进行程序化编程并查找冒号索引。
我尝试过使用负前瞻,但我一无所获。这是 C#,我在测试时使用这个测试器(.Net) 以及Regex Coach (非 .Net)。
我试过用这个:
([\w]{2})\:(?![\w]{2}\:)
但这仅匹配键及其冒号,例如“LN:”,“FN:”等。
如果我使用:
([\w]{2})\:(.+?)([\w]{2})\:
它也消耗下一个匹配的两个字符键和冒号,导致我只匹配每个其他键/值对。
有没有办法让我在 .Net 中正确使用 RegEx 匹配这些,还是我坚持使用更程序化的解决方案?请记住,我不能假设键总是大写字母。它们可能包含数字,但它们始终是两个字符,然后是一个冒号。
提前感谢我能得到的任何帮助。