Python: Wie man mehrere Elemente in eckigen Klammern erhält

7

Ich habe eine Zeichenfolge / ein Muster wie folgt:

%Vor%

Ich versuche, die Werte innerhalb der eckigen Klammern zu erhalten:

  • xy
  • abc

Es gibt niemals Klammern in Klammern. Ungültig: [[abc][def]]

Bisher habe ich das:

%Vor%

Aber das gibt mir nur den inneren Wert der ersten eckigen Klammern.

Irgendwelche Ideen? Ich möchte keine String-Split-Funktionen verwenden, ich bin mir sicher, dass es irgendwie mit RegEx allein möglich ist.

    
Patric 22.02.2012, 21:25
quelle

3 Antworten

17

re.findall ist dein Freund hier:

%Vor%     
MattH 22.02.2012, 21:27
quelle
4
%Vor%     
beerbajay 22.02.2012 21:28
quelle
3

Ich vermute, dass Sie nach re.findall suchen.

Siehe diese Demo :

%Vor%

Wenn Sie Übereinstimmungen anstelle von Übereinstimmungszeichenfolgen iterieren möchten, sehen Sie sich re.finditer an. stattdessen. Weitere Informationen finden Sie in Python re docs .

    
Edward Loper 22.02.2012 21:29
quelle