Я работаю над шаблоном Regex для поиска, который должен позволять дополнительный знак «+» для включения в поиск и знак «-» для исключения из поиска.Например: + apple orange -peach следует искать яблоки и апельсины, а не персики.Также шаблон должен учитывать фразы в двойных кавычках, смешанные с отдельными словами, например: «красное яблоко» - «черный виноград» + апельсин - вы получите идею, такую же, как и большинство запросов в Интернете.Итак, я использую 2 регулярных выражения, во-первых, чтобы выбрать все негативы, что просто, потому что требуется '-':
(?<=[\-]"?)((?<=")(?<exclude>[^"]+)|(?<exclude>[^\s,\+\-"]+))
И, во-вторых, чтобы выбрать позитивы, и это немного сложнее, потому что '+'необязательно:
((?<=[\+\s]")(?<include>[^\s"\+\-][^"]+))|(?<include>(?<![\-\w]"?)([\w][^,\s\-\+]+))(?<!")
В случае положительного поиска у меня возникают проблемы, он прекрасно работает, когда я запускаю его в RegexBuddy, но при попытке в .Net шаблон выбирает второе слово из отрицательных критериев, дляпример в - "черный виноград", он берет слово "виноград", даже если он заканчивается двойной кавычкой.
Есть предложения?