怎么处理Python分割字符串时有多个分隔符
在使⽤ Python 处理字符串的时候,有时候会需要分割字符。分隔符⽐如下划线 “_”,⽐如 “.”之类的。
⼀个分隔符⽐如对于⽂件名 20191022_log.zip,我们想要获取前⾯的⽇期。如果⽇期格式固定,对于这样的字符串我们当然可以使⽤索引进⾏切割。当然也可以使⽤字符串的内建函数 split(). 结果返回的是⼀个列表。如果分隔符不在字符串之列,那么返回的也是⼀个列表,不过元素只有⼀个,那就是这个字符串⾃⾝:多个分隔符还是上⾯那个例⼦,如果字符串是
‘log_20191022.zip' 这个形式,想要获取⽇期,有两种⽅法,⼀种⽅法是使⽤能够下划线作为分隔符获取结果的第⼀个元素,然后再使⽤点 '.'作为分隔符再划分⼀遍。另⼀种⽅法就是直接使⽤ re.split() 。
因为字符串的 split() 函数不能接受两个分隔符作为参数。 re.split() 的使⽤⽅法如下:以竖杠 | 作为分割分开两个分隔符,如果有多个分隔符,则可以使⽤多个 | ,在上述例⼦中,因为点 . 是在正则⾥有特殊的匹配含义,所以需要使⽤ \ 反斜杠对其进⾏转义。
字符串⽅法str.split()帮助:
>>> help(str.split)
Help on method_descriptor:
split(self, /, sep=None, maxsplit=-1)
Return a list of the words in the string, using sep as the delimiter string.
sep
The delimiter according which to split the string.字符串函数怎么获取
None (the default value) means split according to any whitespace,
and discard empty strings from the result.
maxsplit
Maximum number of splits to do.
-1 (the default value) means no limit.
>>>
⽤法: string.split( sep = None, maxsplit = -1)
string 要操作字符串
sep 分隔符,默认值为whitespace空⽩符
maxsplit 最⼤分割次数,默认值为-1,表⽰⽆限制
如果同时有多个分隔符怎么分割呢?
可以⽤循环多次分割来实现,例如:
>>> s = '6[5,12]3[2,6]1;35]67[8;9;11]12'
>>> for j in '[],;':
t=[i.split(j) for i in t]
t=[i for j in t for i in j]
>>> t
['6', '5', '12', '3', '2', '6', '1', '35', '67', '8', '9', '11', '12']
>>>
懂正则表达式的可以⼀步到位:
>>> import re
>>> s = '6[5,12]3[2,6]1;35]67[8;9;11]12'
>>> re.split('\[|\]|,|;',s)
['6', '5', '12', '3', '2', '6', '1', '35', '67', '8', '9', '11', '12']
到此这篇关于Python分割字符串时有多个分隔符怎么处理的⽂章就介绍到这了,更多相关Python分割字符串时有多个分隔符怎么处理内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论