как исключить комбинацию при выполнении поиска по регулярному выражению? - PullRequest
0 голосов
/ 27 августа 2018

Я бы хотел исключить одну комбинацию во время поиска по регулярному выражению.Как это возможно?

Пример ввода:

if("invalid"=key,if("A01"=key,true,false),if("B01"=key,true,false))

Желаемый вывод:

регулярное выражение должно возвращать только trueесли присутствует хотя бы одна комбинация, например "{}"=key, за исключением "invalid"=key (т. е. она должна пропустить эту конкретную комбинацию. Каждая комбинация заканчивается тегом = key)

Заранее спасибо!

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете использовать проверку поиска при сопоставлении " + 1 или более символов, отличных от " + "=key подстроки:

var isMatched = Regex.IsMatch(s, "\"(?!invalid\")[^\"]+\"=key\\b");

См. Демонстрационную версию regex

Регулярное выражение "(?!invalid")[^"]+"=key\b означает:

  • " - двойная кавычка
  • (?!invalid") - не сопровождается invalid" подстрокой
  • [^"]+ - 1 или более символов, кроме двойных кавычек
  • "=key - "=key подстрока
  • \b - граница слова, без буквы / цифры / _после key разрешено.
...