• 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)
    

     

  • 相关阅读:
    定时日志清理
    python ros 订阅robot_pose获取机器人位置
    python ros 重新设置机器人的位置
    c 宏的定义
    dos与unix系统的格式转化
    robot_pose的类型
    ROS编译时(catkin_make)找不到bullet,Could NOT find Bullet (missing: BULLET_DYNAMICS_LIBRARY
    python 压缩tar 包
    python 文件分割
    python 千位分隔符,
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/7254085.html
Copyright © 2020-2023  润新知