Regex zum Teilen von Folgen von Newline-Zeichen

8

Ich versuche, eine Zeichenfolge in Newline-Zeichen aufzuteilen (Berücksichtigung von Windows-, OS X- und Unix-Textdatei-Zeilenumbruchzeichen). Wenn es eine Aufeinanderfolge von diesen gibt, möchte ich auch darauf aufteilen und keine in das Ergebnis einbeziehen.

Also, wenn Sie Folgendes aufteilen:

%Vor%

Das Ergebnis wäre:

%Vor%

Welche Regex sollte ich verwenden?

    
Humphrey Bogart 08.04.2010, 00:20
quelle

5 Antworten

20

Wenn am Anfang oder Ende der Zeilen keine Leerzeichen stehen, können Sie line.split() ohne Argumente verwenden. Es wird Doppel entfernen. . Wenn nicht, können Sie [a for a a.split("\r\n") if a] verwenden.

EDIT: Der str -Typ hat auch eine Methode namens "Splitlines".

"Foo\r\n\r\nDouble Windows\r\rDouble OS X\n\nDouble Unix\r\nWindows\rOS X\nUnix".splitlines()

    
magcius 08.04.2010 03:19
quelle
6

Das einfachste Muster für diesen Zweck ist r'[\r\n]+' , das Sie als "ein oder mehrere Wagenrücklauf- oder Zeilenvorschubzeichen" aussprechen können.

    
Alex Martelli 08.04.2010 00:23
quelle
3
%Vor%     
Ignacio Vazquez-Abrams 08.04.2010 00:22
quelle
1
%Vor%     
ghostdog74 08.04.2010 00:34
quelle
0

Achten Sie auf die Gierigkeitsregeln für Muster:

%Vor%     
jlettvin 17.09.2015 16:44
quelle

Tags und Links