Regulärer Ausdruck: Wie findet man einen String mit "\ n" (Newline)?

7

Ich versuche, Daten aus einer SQL-Exportdatei mit regulärem Ausdruck auszugeben. Um das Feld des Post-Inhalts anzupassen, verwende ich ' (?P<content>.*?) '. Es funktioniert die meiste Zeit gut, aber wenn das Feld die Zeichenfolge '\ n' enthält, würde der reguläre Ausdruck nicht übereinstimmen. Wie kann ich den regulären Ausdruck so ändern, dass er ihnen entspricht? Danke!

Beispiel (Ich benutze Python):

%Vor%

P.S. Scheinbar werden alle Strings mit '\' in der Front als Escape-Zeichen behandelt. Wie kann ich Regx sagen, sie so zu behandeln, wie sie sind?

    
Xun Yang 16.11.2011, 11:13
quelle

2 Antworten

21

Sie sollten DOTALL Option verwenden:

%Vor%

Siehe dies .

    
Adam Zalcman 16.11.2011, 11:19
quelle
3

Sie benötigen den Dotall-Modifikator, damit der Punkt auch mit Newline-Zeichen übereinstimmt.

  

re.S
  re.DOTALL
  Mach das '.' Sonderzeichen passen alle Zeichen an   alle, einschließlich einer Newline; ohne diese Flagge, '.' passt alles zusammen   außer einem Zeilenumbruch.

Siehe hier auf docs.python.org

    
stema 16.11.2011 11:20
quelle

Tags und Links