在使用 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分割字符串时有多个分隔符怎么处理内容请搜刮脚本之家从前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! |