如何在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')
>>>