• 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.split(i)
            
            # 列表解析
            # [median.extend(y.split(i)) for y in result if y]
            
            # map高阶函数,map生成可迭代对象
            for z in map(lambda x: x.split(i), result):
                median.extend(z)
        
            # 以上三个方法都可以解决问题
            result = median
            
        # 去除空字符串
        return [x for x in result if x]
    
    if __name__ == "__main__":
        # 定义初始字符串
        s = '12;;7.osjd;.jshdjdknx+'
        # 定义分隔符
        symbol = ';./+'
        
        result = go_split(s, symbol)
        print(result)

           方法2:通过re.split()方法,一次性拆分所有字符串,推荐

    #!/usr/bin/python3
    
    import re
    
    
    def go_split(s, symbol):
        # 拼接正则表达式
        symbol = "[" + symbol + "]+"
        # 一次性分割字符串
        result = re.split(symbol, s)
        # 去除空字符
        return [x for x in result if x]
    
    
    if __name__ == "__main__":
        # 定义初始字符串
        s = '12;;7.osjd;.jshdjdknx+'
        # 定义分隔符
        symbol = ';./+'
        
        result = go_split(s, symbol)
        print(result)
    

     

  • 相关阅读:
    如何编译Linux内核
    svn
    windows live writer …
    SVN服务器配置
    使用PowerDesigner创建数据库表图文并茂版
    maven学习
    在PreparedStatement中设置空值
    今天, 我的博客正式开通啦.
    Neo4j简介
    clinit和init(转载)
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/7254085.html
Copyright © 2020-2023  润新知