Wiem, że jest kilka pytań na temat rekursji regex w .net. Mogę napisać nieco skomplikowane wyrażenia regularne, ale ta rekursja jest poza mną, po prostu nie jestem w stanie jej napisać.Uzyskiwanie wewnętrznych wzorców rekursywnie za pomocą regex C#
To są pytania najbliżej tego, co chcę.
first question,second question.
ale pasuje do całego ciągu, chcę, aby mecze w kolekcji najlepiej najpierw były najgłębsze lub w jakiejś kolejności. Pasuje również do jednej postaci otwierającej i jednej postaci zamykającej. Mój jest 2 znaki do otwierania i zamykania, [! i!]
Mój łańcuch wejściowy będzie podobny do tego.
[!a='test' b='[!a='innertest' b='innervalue'!]'!]
Muszę znaleźć sekcję innertest, [!a='innertest' b='innervalue'!],
a potem oceniać go przez jeden z moich drzew ekspresyjnych. następnie oceń element macierzysty, który go zawiera.
Czy ktoś może w tym pomóc?
to wygląda dobrze. Dziękuję za pomoc. zamierzam to wypróbować. czy istnieje sposób, aby powiedzieć porządek, jak najdalej, ponieważ najpierw muszę to ocenić. –
Nie bezpośrednio. Można to sprawdzić za pomocą właściwości 'Capture.Start' i' Capture.Length' dla każdego przechwytywania, ponieważ pozwoli to stwierdzić, które przechwytywania zawierają inne przechwytywania. Jednakże jeśli każde 'x = '...'' może zależeć tylko od tego, co zawiera, to ta kolejność powinna działać poprawnie. – porges
jest bardzo blisko tego, co chcę. dziękuję za Twój wysiłek. Musisz być geniuszem !!! Jedno ostatnie pytanie na ten temat. Gdybym chciał zmienić znaczniki otwierające i zamykające na [} i {], zamiast [!,!], Jak będzie | \ w + = '(?! \ [!) [^'] * '| zmiana sekcji. Próbowałem kilku rzeczy, ale go nie uchwyciłem. –