Pasuję do powtarzającej się grupy, która zawiera mieszaninę grup opcjonalnych i nieobowiązkowych. Kiedy przechodzę do przechwytywania, kolekcje przechwytywania są zawsze zwinięte, tj. Nie wstawiają elementu zerowego dla niezrównanych elementów.C# regex przechwytuje
Czy istnieje sposób na zachowanie kolejności dopasowań w kolekcjach przechwytywania, tak aby każdy pominięty element opcjonalny został wstawiony jako pusty, zapewniając w ten sposób elementy kolekcji przechwytywania w grupach?
Aby wyjaśnić, powiedzmy, moja powtarzająca się (rodzica) grupa jest dopasowywana trzy razy, aw jednym z trzech dopasowań została pominięta opcjonalna grupa podrzędna, ale była obecna w dwóch pozostałych grupach, w efekcie otrzymuję kolekcję przechwytywania dla pominięty element, który jest o jeden element mniejszy niż inne kolekcje przechwytujące. Skąd mam wiedzieć, która z grup nadrzędnych pominęła element opcjonalny?
Przypuszczam, że byłoby możliwe użycie właściwości Index elementu kolekcji przechwytywania i sprawdzenie, czy mieści się ona w granicach grupy nadrzędnej, ale byłoby łatwiej, gdyby niezwiązane zwracały pozycję zerową w kolekcji przechwytywania . Czy istnieje sposób, aby to osiągnąć?
można dostarczyć niektóre przykładowy kod do wykazania? – PinnyM