Powiedzmy, że moje wejście to fn(a(b,c),d) fn(a,d) fn(a(b),d)
i chcę a(b,c),d
jak napisać wzór, aby uzyskać wszystko wewnątrz()? 2. fn() jest łatwy pierwsze i trzecie nie wiem jak dopasowaćRegex śledzenie `)`
5
A
Odpowiedz
5
Trzeba balancing group definitions na to:
result = Regex.Match(subject,
@"(?<=\() # Make sure there's a (before the start of the match
(?> # now match...
[^()]+ # any characters except parens
| # or
\( (?<DEPTH>) # a (, increasing the depth counter
| # or
\) (?<-DEPTH>) # a), decreasing the depth counter
)* # any number of times
(?(DEPTH)(?!)) # until the depth counter is zero again
(?=\)) # Make sure there's a) after the end of the match",
RegexOptions.IgnorePatternWhitespace).Value;
2
Można podzielić ją
var output=Regex.Split(input,@"(?:\)|^)[^()]*(?:\(|$)");
Otrzymasz dane wyjściowe jako
Powiązane problemy
- 1. Śledzenie ruchu kontra śledzenie kropli
- 2. Konwersja/instalacja systemu iOS Śledzenie/instalacja Śledzenie
- 3. xdebug śledzenie/śledzenie php echo, drukowanie wywołań
- 4. Śledzenie Użytkownicy -
- 5. Śledzenie zamknięcia
- 6. Śledzenie postępu wideo Flowplayer?
- 7. Śledzenie błędów w Haskell
- 8. Java RMI śledzenie
- 9. śledzenie przez SIGSEGV
- 10. Śledzenie wielu BackgroundWorkers
- 11. Google Analytics - śledzenie nieznane
- 12. Nest 2.0 umożliwia śledzenie
- 13. Git branże: śledzenie upstream
- 14. Śledzenie żądań HTTP
- 15. Śledzenie zmian - Django
- 16. Energooszczędne śledzenie GPS
- 17. Śledzenie promienia - błąd refrakcji
- 18. DHL Śledzenie Api i PHP
- 19. Windows Phone 8.1 śledzenie lokalizacji
- 20. django śledzenie ostatnich użytkowników online
- 21. Śledzenie zmian instancji Django Model
- 22. Śledzenie wydania obiektu COM C#.
- 23. Śledzenie przepływu zadań C#/.NET
- 24. Śledzenie przypisania zmiennych w bitbake
- 25. Śledzenie ignorowanego wyjątku w Pythonie?
- 26. Śledzenie stosu warstwy pośredniej "zalewkowanie"
- 27. C++ sortowanie i śledzenie indeksów
- 28. Śledzenie pozycji linii odtwarzacza strumieniowego
- 29. Masowe śledzenie poczty e-mail
- 30. Śledzenie macierzy krzyżowej - szybsze obliczenia?
Czy dostałeś biały odstęp? jest jak separator? Możesz spróbować 'fn [(] (\ S *) [)]'. – abiessu
Czy 'fn' może zawierać więcej' fn's, czy też 'a' /' b'/'c''s? Czy dane wejściowe zawierają wiele "fn", czy tylko jeden? Jeśli jest ich wiele, czy są po prostu "fn" z rzędu, czy może między nimi jest coś innego? Jak głębokie jest zagnieżdżenie - czy 'fn (a (b (c))) jest ważne? – Kobi