Wie verstehe ich regelmäßigen Ausdruck mit Python?

Ich bin neu mit python Könnte jemand mir helfen, wie ich einen regulären Ausdruck erstellen kann, der eine Liste von Strings wie folgt gegeben hat:

test_string = "pero pero CC tan tan RG antigua antiguo AQ0FS0 que que CS según según SPS00 mi mi DP1CSS madre madre NCFS000" 

Wie man ein Tupel wie folgt zurückgibt:

 > ([madre, NCFS00],[antigua, AQ0FS0]) 

Ich möchte das Wort mit dem damit verbundenen Tag zurückgeben. Test_string, das ist was ich getan habe:

 # -- coding: utf-8 -- import re #str = "pero pero CC " \ "tan tan RG " \ "antigua antiguo AQ0FS0" \ "que que CS " \ "según según SPS00 " \ "mi mi DP1CSS " \ "madre madre NCFS000" tupla1 = re.findall(r'(\w+)\s\w+\s(AQ0FS0)', str) print tupla1 tupla2 = re.findall(r'(\w+)\s\w+\s(NCFS00)',str) print tupla2 

Die Ausgabe ist folgende:

[('Antigua', 'AQ0FS0')] [('madre', 'NCFS00')]

Das Problem mit dieser Ausgabe ist, dass, wenn ich es an test_string ich die "order" oder "Vorkommen" der Tags beibehalten (dh ich kann nur ein Tupel nur dann drucken, wenn sie die folgende Reihenfolge haben: AQ0FS0 und NCFS000 in Andere Wörter: weiblich Adjektiv, weiblich Substantiv).

  • Wie benutzt man '\ Q' und '\ E' Regex Symbole in Python?
  • Entfernen von Backslashs aus einer Zeichenfolge in Python
  • Mit Python ein C-String-Literal von JSON zu erzeugen
  • Wie kann ich die ANSI-Escape-Sequenzen aus einer String in Python entfernen
  • Python Subprocess zum Löschen der Reg-Taste unter Windows
  • Warum benutzt PyCharm doppelten Backslash, um es zu entkommen?
  • One Solution collect form web for “Wie verstehe ich regelmäßigen Ausdruck mit Python?”

     ^([a-zA-Z]+)\s+[a-zA-Z]+\s+([\w]+(?=\d$)\d) 

    Dont wirklich wissen, die Basis für diese Auswahl, aber immer noch können Sie es wie this.Just greifen die captures.Dont vergessen, um die Flaggen g und m.See Demo gesetzt.

    http://regex101.com/r/nA6hN9/38

    Python ist die beste Programmiersprache der Welt.