如何在Python中拆分此字符串?

如何在Python中拆分此字符串?,python,Python,我有一个变量字符串 string = '''Layer:defaultRenderLayer Line 1 text goes here Line 2 text goes here Line 3 text goes here Layer:diffuse Line 1 text goes here Line 2 text goes here Line 3 text goes here Line 4 text goes here Line 5 text goes here Layer:outline

我有一个变量
字符串

string = '''Layer:defaultRenderLayer
Line 1 text goes here
Line 2 text goes here
Line 3 text goes here
Layer:diffuse
Line 1 text goes here
Line 2 text goes here
Line 3 text goes here
Line 4 text goes here
Line 5 text goes here
Layer:outline
Line 1 text goes here
Line 2 text goes here'''
我试图在文本
之前拆分字符串,如下所示

string_list = [
    'Layer:defaultRenderLayer\nLine 1 text goes here\nLine 2 text goes here\nLine 3 text goes here',
    'Layer:diffuse\nLine 1 text goes here\nLine 2 text goes here\nLine 3 text goes here\nLine 4 text goes here\nLine 5 text goes here',
    'Layer:outline\nLine 1 text goes here\nLine 2 text goes here'
]

您需要使用
re.split

re.split(r'\s+(?=Layer:)', string)
这将对字符串
层:
之前存在的一个或多个空格字符进行拆分。请注意,
\s
将匹配任何类型的空格字符,即垂直(换行符、回车符)和水平空格字符(空格、制表符)

例如:

>>> import re
>>> string = '''Layer:defaultRenderLayer
Line 1 text goes here
Line 2 text goes here
Line 3 text goes here
Layer:diffuse
Line 1 text goes here
Line 2 text goes here
Line 3 text goes here
Line 4 text goes here
Line 5 text goes here
Layer:outline
Line 1 text goes here
Line 2 text goes here'''
>>> re.split(r'\s+(?=Layer:)', string)
['Layer:defaultRenderLayer\nLine 1 text goes here\nLine 2 text goes here\nLine 3 text goes here', 'Layer:diffuse\nLine 1 text goes here\nLine 2 text goes here\nLine 3 text goes here\nLine 4 text goes here\nLine 5 text goes here', 'Layer:outline\nLine 1 text goes here\nLine 2 text goes here']
您可以在此处使用
lookahead
re
来实现相同的功能

输出:

['Layer:defaultRenderLayer\nLine 1 text goes here\nLine 2 text goes here\nLine 3 text goes here', 
 'Layer:diffuse\nLine 1 text goes here\nLine 2 text goes here\nLine 3 text goes here\nLine 4 text goes here\nLine 5 text goes here', 
 'Layer:outline\nLine 1 text goes here\nLine 2 text goes here']
或者您也可以使用
re.findall

print re.findall(r"\bLayer\b[\s\S]*?(?=\nLayer\b|$)",x

如何使用re.findall实现相同的过程?请尝试
re.findall(r'(?s)。+?(?=\bLayer:|$),string)
print re.findall(r"\bLayer\b[\s\S]*?(?=\nLayer\b|$)",x