2017-06-09 71 views
0

我有文字的大塊分割字符串:嘗試使用正則表達式

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

而我只是想這段文字分成根據各地GO個別字符串列表,這個工程:

commandlist = textblock.split("GO") 

但..我想要做的是使用類似:

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

,因爲我期待一些文字看上去像個e:

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

但似乎我不能只推一個正則表達式分裂?或者我和我可能只是錯過了這樣做的方式?

+1

使用're.split'。所以基本,我找不到一個笨蛋。 –

回答

2

您需要使用re.split,不是string split

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

或者,因爲你需要用線等於GO分裂:

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

完美,這正是我想要的。代碼很好。我會接受一旦它讓我。我喜歡它,只需在我的舊線上複製/粘貼答案,它就可以工作。 – sniperd