2

我有以下(键/值列表)结构

字段:值值值 字段:值值值

classType: *type type2 ns.grrr.test3 _test4* name_space.classType: grrr.test5 test6

我希望能够将字符串解析成组

classType -字段

  • 类型 -
  • 类型2
  • ns.grrr.test3
  • _test4

name_space.classType

  • grrr.test5
  • 测试6

到目前为止我的尝试之一

^(?<field>((\w+\.?)+)\:)(?<value>(((\w+\.?)+)\s?)+) 

在 expresso 中,上述方法不起作用。我能够让一些部件工作但不使用所需的组

也试过:

(?<value>((?!\:)((\w+\.?)+\:?)))

我试图确保值组不会意外包含一个没有特殊字符的字段,只有:

AZ AZ 0-9 _ 。-

任何帮助将不胜感激。

更新

越来越近,这会正确提取除最后一个术语“test6”之外的所有值......

欢迎任何帮助:)

(感谢@rfeague 对此的投入)。

((?<field>(\w+\.?)+)[:]((?<value>(\w+\.?)+)\s)+)

戴夫

4

2 回答 2

1

这符合一切

(?<field>[^\s]+?):((?<value>[^\s]+)\s?)+
于 2012-10-01T07:14:35.663 回答
0

感谢您的输入,我有以下内容为我带来了正确的结果

((?<field>(\w+\.?)+)[:]((?<value>(\w+\.?)+)(\s|$))+)
于 2012-10-01T07:11:18.473 回答