Может кто-нибудь сказать мне, почему пробел подходит для 2 совпадений по приведенному ниже шаблону?
((?<key>(?:((?!\d)\w+(?:\.(?!\d)\w+)*)\.)?((?!\d)\w+)):(?<value>([^ "]+)|("[^"]*?")+))*
Попытка сопоставить следующие случаи:
var body = "Key:Hello";
var body = "Key:\"Hello\"";
var body = "Key1:Hello Key2:\"Goodbye\"";
Это может обеспечить больше context:
pattern = @"((?<key>" + StringExtensions.REGEX_IDENTIFIER_MIDSTRING + "):(?<value>([^ \"]+)|(\"[^\"]*?\")+))*";
Моя цель - вытащить ключи, значения из командной строки, например строки в виде [key]: [value] с необязательными повторениями. Значения могут быть либо без пробелов, либо в кавычках с пробелами.
Возможно, прямо передо мной, но я этого не вижу.