我一直有问题,为特定的字符串生成正则表达式。Java的正则表达式积极lookahead
我的源字符串基本上是一组键值对。我期望的输出是 下面是一个简单的字符串:
:27B:Hello: World!
Something
World: Hello
:29A:Test
:30:Something isn't right-}
所需的输出:
Key: 27B Value: Hello: World!
Something
World: Hello
Key: 29A Value: Test
Key: 30 Value: Something isn't right
这里是我的正则表达式为它至今:
(\\d+\\w?):([\\w\\d\\s'/,:\\Q.()\\E]+(?=(:\\s*\\d+\\w?:|\\-\\})))
的问题是,我似乎在捕捉整个消息。
e.g. Key: 27B Value:Hello: World!
Something
World: Hello
:29A:Test
:30:Something isn't right
我的正则表达式应该是什么,以便我可以提取这些键/值对?
目前还不清楚什么是允许的以及您的密钥和值中不允许的内容。我不认为有'!'匹配您当前正则表达式的值部分。 – nhahtdh 2013-05-02 14:50:45
您是否试图捕获键和值或打印所需的输出示例中所述的字符串?知道你如何使用正则表达式也是有用的。 'Pattern' +'Matcher.find()'? – rvalvik 2013-05-02 14:57:30