Я пытаюсь сопоставить выражение типа
field:"value"
но не
field:value
Я написал
([a-z]+)\s*?:\s*?"(.+)"\s*?
и это работает за исключением dotNet
Есть ли причина, по которой это может быть? Что-то мне не хватает?
Редактировать - я набрал вопрос неправильно (цифры)
Я пытаюсь соответствовать
field:value
но не
field:"value"
Это регулярное выражение, которое у меня есть
(?<field>[a-z]+)\s*?:\s*?(?<value>[^"].+[^"])\s*?
Но это не работает, оно совпадает даже с тем, что в кавычках.
Редактировать 2:
Ниже приведен код -
SearchResources.StringRegexNotQuotedText
это ([a-z]+)\s*?:\s*?([^"]+)\s*?
stringQuery
is (what: "Hello_bob"
)
Все соответствующие вещи сбежали ....
Regex regexNotQuoted = new Regex(SearchResources.StringRegexNotQuotedText, RegexOptions.IgnoreCase);
MatchCollection matchesNotQuoted = regexNotQuoted.Matches(stringQuery);
// It should go into this block if the value is not in quotes
if (regexNotQuoted.IsMatch(stringQuery))
{
}