2010-12-31 14 views
5

Powiel możliwe:
Can regular expressions be used to match nested patterns?regex Szukaj zagnieżdżonych Wsporniki

Jak używać wyrażeń regularnych, aby szukać parę otwierania i zamykania uchwytów z dowolnej liczby wsporników zagnieżdżona to np

(...(...(...(...) ...) ...) ...) 

Każdy wspornik otwierający musi być dopasowany za pomocą wspornika zamykającego. Liczba zagnieżdżonych par otwierająco-zamykających jest dowolna. Inne znaki alfanumeryczne mogą pojawiać się w nawiasach.

+0

Co próbujesz osiągnąć? (Czy chcesz się upewnić, że istnieje równa liczba otwartych i zamkniętych nawiasów?) –

+7

Wyrażenia regularne nie zawsze są odpowiedzią - możesz po prostu zeskanować ciąg znaków i użyć stosu, aby zweryfikować prawidłowe zagnieżdżanie nawiasów. –

+4

Nie możesz. Nawiasy zagnieżdżone w nawiasach są klasycznym przykładem niestandardowego języka bez kontekstu, tj. Klasyczne wyrażenie regularne po prostu nie jest wystarczająco wyraziste. –

Odpowiedz

1

Jeśli naprawdę chcesz, aby użyć wyrażenia regularnego, aby to zrobić (nie jestem pewien, że to dobry sposób), można pętli aż do tego regex \([^\(\)]*\) zwraca nic, i za każdym czasie można dostać coś trzeba usunąć wynik w początkowej i pętli ponownie ...