【发布时间】:2008-12-16 17:21:08
【问题描述】:
Medicare Eligibility EDI Example Responses 是我想要匹配的。
我有一个如下所示的字符串:
LN:SMITHbbbbbbbbFN:SAMANTHAbbBD:19400515PD:1BN:123456PN:9876543210GP:ABCDEFGHIJKLMNOID:123456789012345bbbbbPC:123PH:8005551212CD:123456PB:123ED:20060101TD:2070101LC:NFI:12345678FE:20070101FT:20080101 PRE>我需要一组如下所示的匹配项:
钥匙 |价值 ------------------ LN | SMITHbbbbbbbb FN |萨曼莎 BD | 19400515 ... 等等
我整天都在处理这个问题,但我似乎无法获得可接受的匹配方案。如果我想不通,我将使用 for 循环对其进行程序化编程并查找冒号索引。
我尝试过使用negative lookahead,但我无处可去。这是 C#,我在测试时使用 this tester (.Net) 以及 The Regex Coach (非 .Net)。
我试过用这个:
([\w]{2})\:(?![\w]{2}\:)
但这仅匹配键及其冒号,例如“LN:”、“FN:”等。
如果我使用:
([\w]{2})\:(.+?)([\w]{2})\:
它也消耗下一个匹配的两个字符键和冒号,导致我只匹配每个其他键/值对。
有没有办法让我在 .Net 中使用 RegEx 正确匹配这些,还是我坚持使用更程序化的解决方案?请记住,我不能假设键总是大写字母。它们可能包含数字,但它们始终是两个字符,然后是一个冒号。
提前感谢您提供的任何帮助。
【问题讨论】:
标签: c# regex lookahead negative-lookahead