2015-09-30 240 views
0

例如,我可能想將"Hello>>>World!!!!2]]splitting"分成["Hello", "World","2","splitting"]。它不需要^,^,但我想分割一個字符串與多個(5)分隔符。 謝謝。如何在Python中用多個分隔符分割字符串?

編輯:我也想保持的分隔符,使其["Hello", ">>>", "World", "!!!!", "2", "]]", "splitting"]

這是我已經試過:

>>> string = "Hello>>>World!!!!2]]splitting" 
>>> import re 
>>> re.split("(\W)>>>|!!!!|]]", string) 
['Hello>>>World', None, '2', None, 'splitting'] 

(我是新的正則表達式)

+1

['re.split'](https://docs.python.org/2/library/re.html#re.split)? – NightShadeQueen

+0

您是否可以顯示您的代碼以及您收到的任何錯誤消息?另外,如果你能夠清楚地指出你的代碼中哪些部分有問題,這將有所幫助。 – idjaw

+0

@idjaw我正在上傳它,只是一秒... – Henry

回答

3

要做到這一點使用re.split你可以這樣做:

re.split(r'(>+|!+|]+)', string) 

爲了解釋這個簡單:

  • 拆分在不同的分隔符(>!])的一次或多次出現。
  • 爲了在結果中包含分隔符,可以將模式放在捕獲組中,方法是將其放置在捕獲組中。
+0

感謝您的解釋 – Henry

+0

所以這並不意味着're.split(r'(\ +)',string)'會分割空格並保留空格嗎? – Henry

+0

@亨利是的,試試吧,'re.split(r'()','快速的棕色狐狸') – Marius

2
import re 

a = 'Hello>>>World!!!!2]]splitting' 

print(re.findall('\W+|\w+',a)) 

['Hello', '>>>', 'World', '!!!!', '2', ']]', 'splitting'] 

你在做什麼是找到所有單詞字符非單詞字符。

+0

如果是像分裂空格和換行符並保持兩者一樣呢? – Henry

+0

只需更改正則表達式模式。你有這樣的例子嗎?換行符是'\ n'和'\ +'空格 – Leb

+0

謝謝@Leb! – Henry

相關問題