让我们说我有一个字符串。分割字符串蟒蛇与改变指标
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