2016-08-01 147 views
1

我需要一個字符串'列表'作爲輸入並相應地格式化它。下面是一些例子輸入:拆分整數字符串

string = "This is the input:1. A list element;2. Another element;3. And another one."

而且我想輸出是採用以下格式的列表:

list " ["This is the input:", "A list element;", "Another element;", "And another one."]

我曾嘗試做如下:

list = string.split('(\d+). ')

希望它會分裂所有整數,然後是完整的sto p和空格,但這似乎不起作用:只返回單個元素列表,表示沒有找到任何拆分條件。

有人看到我在做什麼錯了嗎?

+0

alecxe已經回答瞭如何去做;你在做錯的是a)在正則表達式中''string.split()'不帶正則表達式,只有文本文本和b)'.'是一個特殊字符,可以匹配任何東西,所以一個數字後跟一個* dot *需要'.'用反斜槓轉義。 – TessellatingHeckler

+0

感謝您的輸入 - 踢自己不逃避''。但它有點讓人欣慰,知道它不會''d''無論如何。 –

回答

2

可以使用re.split() method的開裂:;後面跟着一個或多個數字後面跟着一個點和一個空格:

>>> re.split(r"[:;]\d+\.\s", s) 
['This is the input', 'A list element', 'Another element', 'And another one.'] 

爲了保持:;劈叉裏面,你可以使用一個positive lookbehind check

>>> re.split(r"(?<=:|;)\d+\.\s", s) 
['This is the input:', 'A list element;', 'Another element;', 'And another one.']