我有一大块文字:
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")
因为我期待一些文字看起来像:
SELECT TOP 10 * FROM GOPATRIOTS
GO
SELECT TOP 10 * FROM PEARS LETITGO
GO SELECT TOP 10 * FROM FRUITS
...
但似乎我不能把正则表达式分成两部分?或者我和我只是错过了这样做的方式?
答案 0 :(得分:2)
您需要使用re.split
,而不是string split:
import re
commandlist = re.split(r"\bGO\b", textblock)
或者,因为您需要使用等于GO
的行进行拆分:
commandlist = re.split(r"(?m)^GO$", textblock)