2024-09-30 22:13:04 发布
网友
我有这样的代码
a = "*abc*bbc" a.split("*")#['','abc','bbc'] #i need ["*","abc","*","bbc"] a = "abc*bbc" a.split("*")#['abc','bbc'] #i need ["abc","*","bbc"]
如何在pythonsplit函数或regex或partition中获取带分隔符的列表? 我使用的是python2.7,windows
使用partition()
partition()
a = "abc*bbc" print (a.partition("*")) >>> ('abc', '*', 'bbc') >>>
您需要将带有分隔符的RegEx用作一个组,并忽略空字符串,如下所示
>>> [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:您需要用\转义*,因为RegEx对*有特殊的含义。因此,您需要告诉RegEx引擎*应该被视为普通字符。你知道吗
\
*
注2:拆分分隔符位于开头或结尾的字符串时,将得到一个空字符串。检查this question以了解其背后的原因。你知道吗
import re x="*abc*bbc" print [x for x in re.split(r"(\*)",x) if x]
必须使用re.split并对分隔符进行分组。你知道吗
re.split
或者
x="*abc*bbc" print re.findall(r"[^*]+|\*",x)
或通过re.findall
re.findall
使用
partition()
您需要将带有分隔符的RegEx用作一个组,并忽略空字符串,如下所示
注意1:您需要用
\
转义*
,因为RegEx对*
有特殊的含义。因此,您需要告诉RegEx引擎*
应该被视为普通字符。你知道吗注2:拆分分隔符位于开头或结尾的字符串时,将得到一个空字符串。检查this question以了解其背后的原因。你知道吗
必须使用
re.split
并对分隔符进行分组。你知道吗或者
或通过
re.findall
相关问题 更多 >
编程相关推荐