讓我們說我有一個字符串。分割字符串蟒蛇與改變指標
a = '[email protected]@@@@@a2&&&&&&a3::::'
它自然地分割:A1,A2和A3以
['!!!!!!','@@@@@@','&&&&&&','::::']
我想用split
功能,是這樣的:
>>> a.split('a*')
的*
表明,它不」不管什麼字符在a
之後。有沒有一種方法可以做到這一點?
讓我們說我有一個字符串。分割字符串蟒蛇與改變指標
a = '[email protected]@@@@@a2&&&&&&a3::::'
它自然地分割:A1,A2和A3以
['!!!!!!','@@@@@@','&&&&&&','::::']
我想用split
功能,是這樣的:
>>> a.split('a*')
的*
表明,它不」不管什麼字符在a
之後。有沒有一種方法可以做到這一點?
s = '[email protected]@@@@@a2&&&&&&a3::::'
import re
print(re.split(r'a[0-9]+', s))
通過使用正則表達式,與模塊re
,你可以嘗試這樣的:
import re
a = re.split(r'a\d','[email protected]@@@@@a2&&&&&&a3::::')
如果你想在你開口鍵更具體的,試試這個:
a = re.split(r'a1|a2|a3','[email protected]@@@@@a2&&&&&&a3::::')
並根據需要製作自定義條件。
雖然效率不高,如@夢龍的解決方案,你可以在技術上只用列表和字符串操作去做,而不導入re
:
>>> a = '[email protected]@@@@@a2&&&&&&a3::::'
>>> s = a.split('a')
>>> s[:1] + [x[1:] for x in s[1:] if x]
['!!!!!!', '@@@@@@', '&&&&&&', '::::']
這工作,因爲如果你各執'a'
,每一個第一個字符第一個段後的段將是你想要擺脫的*
角色。
這個解決方案並不可取,只是我做了一個練習。
可能重複的[Python:按特定模式分割](https://stackoverflow.com/questions/14814186/python-splitting-by-certain-pattern) –
它真的是任何字符後'a'或只有數字? – Toto