2017-09-14 96 views
3

讓我們說我有一個字符串。分割字符串蟒蛇與改變指標

a = '[email protected]@@@@@a2&&&&&&a3::::' 

它自然地分割:A1,A2和A3以

['!!!!!!','@@@@@@','&&&&&&','::::'] 

我想用split功能,是這樣的:

>>> a.split('a*') 

*表明,它不」不管什麼字符在a之後。有沒有一種方法可以做到這一點?

+0

可能重複的[Python:按特定模式分割](https://stackoverflow.com/questions/14814186/python-splitting-by-certain-pattern) –

+0

它真的是任何字符後'a'或只有數字? – Toto

回答

0

通過使用正則表達式,與模塊re,你可以嘗試這樣的:

import re 
a = re.split(r'a\d','[email protected]@@@@@a2&&&&&&a3::::') 

如果你想在你開口鍵更具體的,試試這個:

a = re.split(r'a1|a2|a3','[email protected]@@@@@a2&&&&&&a3::::') 

並根據需要製作自定義條件。

0

雖然效率不高,如@夢龍的解決方案,你可以在技術上只用列表和字符串操作去做,而不導入re

>>> a = '[email protected]@@@@@a2&&&&&&a3::::' 
>>> s = a.split('a') 
>>> s[:1] + [x[1:] for x in s[1:] if x] 
['!!!!!!', '@@@@@@', '&&&&&&', '::::'] 

這工作,因爲如果你各執'a',每一個第一個字符第一個段後的段將是你想要擺脫的*角色。

這個解決方案並不可取,只是我做了一個練習。