如何在python中拆分字符串并使用分隔符获得结果?

如何在python中拆分字符串并使用分隔符获得结果?,python,regex,string,python-2.7,Python,Regex,String,Python 2.7,我有这样的代码 a = "*abc*bbc" a.split("*")#['','abc','bbc'] #i need ["*","abc","*","bbc"] a = "abc*bbc" a.split("*")#['abc','bbc'] #i need ["abc","*","bbc"] 如何在pythonsplit函数或regex或分区中获取带分隔符的列表? 我使用的是python 2.7和windows import re x="*abc*bbc" print [x for x

我有这样的代码

a = "*abc*bbc"
a.split("*")#['','abc','bbc']
#i need ["*","abc","*","bbc"] 
a = "abc*bbc"
a.split("*")#['abc','bbc']
#i need ["abc","*","bbc"]
如何在pythonsplit函数或regex分区中获取带分隔符的列表? 我使用的是python 2.7和windows

import re
x="*abc*bbc"
print [x for x in re.split(r"(\*)",x) if x]
您必须使用
re.split
并对分隔符进行分组


或者通过
re.findall

您需要将带有分隔符的正则表达式用作一个组,并忽略空字符串,如下所示

>>> [item for item in re.split(r"(\*)", "abc*bbc") if item]
['abc', '*', 'bbc']
>>> [item for item in re.split(r"(\*)", "*abc*bbc") if item]
['*', 'abc', '*', 'bbc']
注意1:您需要用
\
转义
*
,因为正则表达式对
*
有特殊的含义。因此,您需要告诉正则表达式引擎,
*
应被视为普通字符

注意2:拆分分隔符位于开头或结尾的字符串时,将得到一个空字符串。检查以了解其背后的原因。

使用
partition()


filter(无,关于拆分(“([*]),“*abc*bbc”)
@hwnd实际上,在Python中,列表理解比
过滤器更可取:)是的,可取,但仍然不错=)
>>> [item for item in re.split(r"(\*)", "abc*bbc") if item]
['abc', '*', 'bbc']
>>> [item for item in re.split(r"(\*)", "*abc*bbc") if item]
['*', 'abc', '*', 'bbc']
a = "abc*bbc"
print (a.partition("*"))

>>> 
('abc', '*', 'bbc')
>>>