2017-06-09 6 views
0

Ich habe einen großen Textblock aufgeteilt:Versuch, eine Zeichenfolge mit einem regulären Ausdruck

SELECT TOP 10 * FROM APPLES 
GO 
SELECT TOP 10 * FROM PEARS TREE 
GO 
SELECT TOP 10 * FROM FRUITS 
... 

Und ich versuche einfach, diesen Text in eine Liste von einzelnen Strings um GO Basis zu spalten, das funktioniert:

commandlist = textblock.split("GO") 

aber .. was ich möchte tun Verwendung so etwas wie:

commandlist = textblock.split(r"\bGO\b") 

, weil ich einen Text warte lik aussehen e:

SELECT TOP 10 * FROM GOPATRIOTS 
GO 
SELECT TOP 10 * FROM PEARS LETITGO 
GO SELECT TOP 10 * FROM FRUITS 
... 

aber es scheint, dass ich nicht einfach eine Regex in Split schieben kann? Oder kann ich und ich nur den Weg vermissen?

+1

Verwenden 're.split'. So einfach, ich kann keinen Betrogenen finden. –

Antwort

2

Sie müssen re.split verwenden, keine string split:

import re 
commandlist = re.split(r"\bGO\b", textblock) 

Oder, da man mit den Linien gleich GO aufteilen müssen:

commandlist = re.split(r"(?m)^GO$", textblock) 
+0

Perfekt, genau das wollte ich. Code funktioniert großartig. Ich werde es akzeptieren, sobald es mich hat. Ich liebe es, wenn ich einfach die Antwort über meine alte Zeile kopieren und einfügen kann und es funktioniert einfach. – sniperd

Verwandte Themen