2016-07-21 3 views
-2

Angenommen, ich den TextWie kann ich eine Regex erstellen, die alle Gruppen zwischen zwei Ausdrücken findet?

lorem ipsum: *(some amount of whitespace)* 
data1 *(some amount of whitespace)* 
data2 *(some amount of whitespace)* 
...dataN *(some amount of whitespace)* 
*(empty line)* 

haben Und ich will data1 zu Datan.

Die Regex

lorem ipsum: \s*? \n(.+?)\n 

Will mich data1 bekommen, aber ich brauche mehr als das.

Wie würde ich eine Regex schreiben, um eine beliebige Anzahl von Gruppen zwischen Gruppen zu erfassen?

+0

Wenn Ihre Frage wirklich zu einer leeren Zeile up erfassen, können Sie nur verwenden [mehrzeiligen Modus] (https://docs.python.org/2/library/re.html#re. M) und erfassen bis zu \ n $ '. – jonrsharpe

+0

Ich möchte die Daten als einzelne Gruppen zugänglich machen, anstatt nur eine Gruppe mit (data1 data2 ...) –

+2

Warum verwenden Sie überhaupt Regex, darüber nachzudenken? Warum nicht einfach "str.splitlines", dann kannst du leicht alle nicht-leeren Zeilen aus einer Zeile "lorem ipsum" verwenden. * "Ich möchte die Daten als einzelne Gruppen zugänglich machen" * - es ist hilfreich, Anforderungen wie * in der Frage * zu erwähnen. – jonrsharpe

Antwort

0

So würde ich es in JavaScript machen - Sie sollten es für Python anpassen können.

string.replace(/lorem ipsum:\s*/, "").split(/\s+/);

Verwandte Themen