2016-06-02 12 views
-3

Ich versuche, eine regex Methode zu machen (wenn Sie eine einfachere Methode finden, bitte sagen Sie)Struggling mit Python Regex für einen ganz bestimmten Array

Zum Beispiel: Ich brauche die Zeilen, die mit „gekennzeichnet sind! " am Ende

[ExpertSingle] 
{ 
192 = N 0 0 
384 = N 0 0 
576 = N 0 0 
768 = N 0 0 
960 = N 0 0 
} 

bearbeiten: ersetzt mit aktuellen Daten

Antwort

1

Sie könnten nur die Zeilen finden, die mit einer oder mehreren Nummern

import re 
inputStr = """[ExpertSingle] 
{ 
192 = N 0 0 
270 = N 1 0 
270 = N 2 0 
360 = N 0 0 
}""" 

goodLines = re.findall(r"\d+.+", inputStr) 
print(goodLines) 

Diese Ausgänge: ['192 = N 0 0', '270 = N 1 0', '270 = N 2 0', '360 = N 0 0']

Wenn du wolltest extrem streng sein und nur Wörter im Format einiger Ziffern finden, ein Leerzeichen, ein Gleichheitszeichen, ein Leerzeichen, ein Buchstabe, ein Leerzeichen, eine Ziffer, ein Leerzeichen, dann eine andere Ziffer, die Sie verwenden könnten

goodLines = re.findall(r"\d+\s=\s\w\s\d\s\d", inputStr) 
+0

Die Zeilen enden nicht tatsächlich in "!" Das ist nur ein Indikator, um die Suche nach den benötigten Daten zu erleichtern. Und nicht alle enden in 0 oder enthalten "= N", da einige "= S" – whamer100

+0

@ whamer100 sind, also posten Sie Ihre echten Daten und ich werde sie bearbeiten. Geben Sie mir keine Daten und sagen Sie mir dann "das sind nicht die tatsächlichen Daten" – Keatinge

+0

Ich ersetzte die Daten – whamer100

Verwandte Themen