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

(0)

相关推荐

  • python如何拆分含有多种分隔符的字符串

    案例: 把某个字符串依据分隔符拆分,该字符包含不同的多种分隔符,如下 s = '12;;7.osjd;.jshdjdknx+' 其中 ; . + 是分隔符 有哪些解决方案? 方法1:通过str.split()方法,每次处理一个分隔符 #!/usr/bin/python3 def go_split(s, symbol): result = [s] for i in symbol: median = [] # 普通方法 # for x in result: # median.extend(x.spl

  • Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例

    本文实例讲述了Python针对任意多的分隔符拆分字符串操作.分享给大家供大家参考,具体如下: 问题:将分隔符(以及分隔符之间的空格)不一致的字符串拆分为不同的字段: 解决方案:使用更为灵活的re.split()方法,该方法可以为分隔符指定多个模式. 说明:字符串对象的split()只能处理简单的情况,而且不支持多个分隔符,对分隔符周围可能存在的空格也无能为力. # example.py # # Example of splitting a string on multiple delimiter

  • python针对不定分隔符切割提取字符串的方法

    问题:我们需要在散沙一般的数据中提取出字符,分隔符不止一个,而且还有不少空格,比如: 原字符串如下: 'asd ff gg; asd , foo| og ' 我们需要删除上面的,:|分隔符和多余空格,提取出: ['asd', 'ff', 'gg', 'asd', 'foo', 'og'] 这种一般用于处理日志或者网页数据提取,一般而言,这种数据中需要的数据分布规律性不是太强,而且比较散. 处理结果如下: import re line = 'asd ff gg; asd , foo| og ' d

  • 怎么处理Python分割字符串时有多个分隔符

    在使用 Python 处理字符串的时候,有时候会需要分割字符. 分隔符比如下划线 "_",比如 "."之类的. 一个分隔符 比如对于文件名 20191022_log.zip,我们想要获取前面的日期. 如果日期格式固定,对于这样的字符串我们当然可以使用索引进行切割. 当然也可以使用字符串的内建函数 split().  结果返回的是一个列表. 如果分隔符不在字符串之列,那么返回的也是一个列表,不过元素只有一个,那就是这个字符串自身:  多个分隔符 还是上面那个例子,如果

  • python 查找字符串是否存在实例详解

    python中查找指定的字符串的方法如下: code #查询 def selStr(): sStr1 = 'jsjtt.com' sStr2 = 'com' #index查询某个字符串,返回索引 nPos = sStr1.index(sStr2) if(nPos >=0): print 'sStr1中包括sStr2中的字符' print nPos #find 方法如果没有查询到返回-1 nPos2 = sStr1.find('abc') print nPos2 #查询到返回字符所在位置 prin

  • python分割和拼接字符串

    关于string的split 和 join 方法对导入os模块进行os.path.splie()/os.path.join() 貌似是处理机制不一样,但是功能上一样. 1.string.split(str=' ',num=string.count(str)): 以str为分隔,符切片string,如果num有指定值,则仅分隔num个子字符串.S.split([sep [,maxsplit]]) -> 由字符串分割成的列表 返回一组使用分隔符(sep)分割字符串形成的列表.如果指定最大分割数,则在

  • python 按照固定长度分割字符串的方法小结

    有如下的一堆mac地址,需要更改成一定格式,如mac='902B345FB021'改为mac='90-2B-34-5F-B0-21'. 借助python脚本,可以轻松实现,原理就是:字符串的按照固定长度拆分. 1,文件mac.txt,保存了如下的mac地址: 50E549E32ECB 902B3413EFA6 50E549ECBA1C 902B3457B16F 1C6F65296DF9 902B34131A14 50E549E3E2F8 50E5493A2696 902B345FB021 902

  • Python使用正则表达式分割字符串的实现方法

    如下: re.split(pattern, string, [maxsplit], [flags]) pattern:表示模式字符串,由要匹配的正则表达式转换而来. string:表示要匹配的字符串. maxsplit:可选参数,表示最大的拆分次数. flags:可选参数表示标志位,用于控制匹配方式,如是否区分子母大小写 示例代码: import re pattern = r'[?|&]' # 定义分隔符 url = 'http://www.baidu.com/login.jsp?usernam

  • Python实现像awk一样分割字符串

    若你使用过 Shell 中的 awk 工具,会发现用它来分割字符串是非常方便的.特别是多个连续空格会被当做一个处理. [root@localhost ~]# cat demo.txt hello world [root@localhost ~]# [root@localhost ~]# awk '{print$1,$2}' demo.txt hello world 可是转换到 Python 上面来呢?结果可能是这样的. >>> msg='hello world' >>>

  • Python re.split方法分割字符串的实现示例

    目录 re.split方法 问题 解决方案 讨论 re.split方法 注:使用前需要引入包(import re) 功能:split能够按照所能匹配的字串将字符串进行切分,返回切分后的字符串列表 形式: re.split(pattern, string[, maxsplit=0, flags=0]) pattern:匹配的字符串 string:需要切分的字符串 maxsplit:分隔次数,默认为0(即不限次数) flags:标志位,用于控制正则表达式的匹配方式,比如:是否区分大小写 问题 你需要

  • Python常见字符串操作函数小结【split()、join()、strip()】

    本文实例讲述了Python常见字符串操作函数.分享给大家供大家参考,具体如下: str.split(' ') 1.按某一个字符分割,如'.' >>> s = ('www.google.com') >>> print(s) www.google.com >>> s.split('.') ['www', 'google', 'com'] 2.按某一个字符分割,且分割n次.如按'.'分割1次:参数maxsplit位切割的次数 >>> s =

  • python中字符串比较使用is、==和cmp()总结

    经常写 shell 脚本知道,字符串判断可以用 =,!= 数字的判断是 -eq,-ne 等,但是 Python 确不是这样子的. 所以作为慢慢要转换到用 Python 写脚本,这些基本的东西必须要掌握到骨子里! 在 Python 中比较字符串最好是使用简单逻辑操作符. 例如,确定一个字符串是否和另外一个字符串匹配.正确的,你可以使用 is equal 或 == 操作符.你也可以使用例如 >= 或 < 来确定几个字符串的排列顺序. 从官方文档上看 The operators ``is`` and

  • python中字符串的操作方法大全

    前言 python中字符串对象提供了很多方法来操作字符串,功能相当丰富. print(dir(str)) [..........'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'i

随机推荐