[英]How can I split this string in Python?
我有一個變量string
。
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'''
我正試圖在文本Layer
之前拆分字符串,如下所示。
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'
]
import re
print re.split(r"\n(?=Layer)",x)
您可以使用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.split
re.split(r'\s+(?=Layer:)', string)
這將拆分一個或多個空格字符,這些空格字符就在字符串Layer:
之前。 並注意\\s
將匹配任何類型的空格字符,即垂直( 換行符,carrage返回 )以及水平空格字符( 空格,制表符 )。
例:
>>> 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']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.