У меня есть класс C # Regex, соответствующий нескольким подгруппам, например
(?<g1>abc)|(?<g2>def)|(?<g3>ghi)
но с гораздо более сложными подшаблонами. Я в основном хочу сопоставить все, что не принадлежит ни одной из этих групп, в дополнение к существующим группам.
Я пытался
(?<g1>abc)|(?<g2>def)|(?<g3>ghi)|(.+?)
но получилось слишком медленно. Я не могу сделать отрицание, потому что я не хочу копировать эти сложные подшаблоны избыточно. Использование just (. +) Переопределяет все остальные группы, как и ожидалось.
Есть ли другой способ? Если это не сработает, мне придется написать специальный анализатор.
Дополнительные сведения: Все эти группы оцениваются с помощью MatchEvaluator. Поэтому поведение класса Regex, которое отправляет «несопоставленные строки» в MatchEvaluator, также будет работать.
Пример текста будет
.......abc........ghi.....def.....abc....def...ghi......abc.......
Я хочу поймать промежуточные части.