Ich habe eine GraphViz-Datei für einen bestimmten Identifikator mit Regex analysiert. Hier ist der typische Inhalt aus dieser Datei:Python Regex passendes Problem
node10 [label="second-messenger-mediated signaling\nGO:0019932", fontname=Courier, ...];
node11 [label="inositol phosphate-mediated signaling\nGO:0048016", fontname=Courier, ...];
node12 [label="activation of phospholipase C activity by G-protein coupled receptor protein signaling pathway coupled to IP3 second messenger\n\
GO:0007200", fontname=Courier, ...];
node13 [label="G-protein coupled receptor protein signaling pathway\nGO:0007186", fontname=Courier, ...];
node14 [label="activation of phospholipase C activity\nGO:0007202", fontname=Courier, ...];
node15 [label="elevation of cytosolic calcium ion concentration involved in G-protein signaling coupled to IP3 second messenger\nGO:0051482", fontname=Courier, pos="798,1162", width="9.56", height="0.50"];
Da ich nur daran interessiert bin in dem nodeid, Label und die GO Kennung ich die folgende regex verwendet habe, um jede Zeile zu entsprechen:
(node\d*)\s\[label=\"([\w\s-]*).*(GO:\d*)
Ich weiß, dass es weder schrecklich elegant noch sehr effizient ist, aber es hat die Arbeit erledigt, außer für die Linie mit node12. Ich habe versucht, re.DOTALL und re.MULTILINE, aber ohne Erfolg.
Kann mir jemand helfen, das fehlende Teil des Puzzles zu erkennen, damit der Regex auch funktioniert mit node12?
** EDIT:
Hier [1] ist ein Link auf die Datei, die eine dieser Zeilen enthält.
Sorry, ich verstehe nicht wirklich, was du sagst. Irgendwie kannst du ein bisschen klarer sein? – luuke
meine schlechte, sorry;) Ich sage, dass das Problem die neue Zeile ist. im Normalfall wäre die Zeile 'node11 label [etc] \\ n; In Knoten 12 gibt es \\ n \\ n. also funktioniert die Regex nicht. Sie können tun: – Ant
q = öffnen ('Datei') .read(). ersetzen ('\\ n \\ n', '\\ n') ... jetzt Ihre Regex wird funktionieren;) – Ant