我具有以下(键/值列表)结构
字段:值值值字段:值值值
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?)+)
在表达式中,以上内容不起作用。我可以使某些部分正常工作,但不能使用所需的组
还尝试了:
(?<value>((?!\:)((\w+\.?)+\:?)))
在这里我尝试确保值组不会意外地包含一个字段
没有特殊字符,只有:
a-z A-Z 0-9 _。 --
任何帮助将不胜感激。
更新资料
越来越近,这将正确提取所有值,除了最后一项“ test6” ...
任何帮助都欢迎:)
(感谢@ rfeague对此的投入)。
((?<field>(\w+\.?)+)[:]((?<value>(\w+\.?)+)\s)+)
戴夫
最佳答案
这一切都匹配
(?<field>[^\s]+?):((?<value>[^\s]+)\s?)+
关于c# - 正则表达式,负后缀,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12667932/