zoukankan      html  css  js  c++  java
  • 用多个分隔符切分字符串---re.split()

    问题/需求:

      需要将字符串切分,但是分隔符在整个字符串中并不一致

      (即:需要用多个分隔符切分字符串

    str.split()方法不可行:

      只支持单一分隔符不支持正则及多个切割符号不感知空格的数量

    解决办法:

      re.split()

      适用:多个 分隔符,切割功能非常强大

      语法: re.split(pattern, string, maxsplit=0)

      通过正则表达式将字符串分离。如果用括号将正则表达式括起来,那么匹配的字符串也会被列入到list中返回。maxsplit是分离的次数,maxsplit=1分离一次,默认为0,不限制次数。

      例子:

    >>> import re
    >>> line = 'aa bb cc dd; ee ff. gg- hh ii kk'
    >>> line
    'aa bb cc dd; ee ff. gg- hh ii kk'
    

      

      单字符切割:

    >>> re.split(';',line)
    ['aa bb cc dd', ' ee ff. gg- hh ii kk']
    

      

      两个字符以上切割,放在 [ ] 中(不保留分隔符):

    >>> re.split('[;.-]',line)
    ['aa bb cc dd', ' ee ff', ' gg', ' hh ii kk']
    

      

      使用 ( ) 捕获分组(保留分割符):

    >>> re.split('([;,])',line)
    ['aa bb cc dd', ';', ' ee ff', '.', ' gg', '-', ' hh ii kk']
    

      

     使用注意:

    pattern中有问号时, 要加 转义,不然切分完全会不同。

  • 相关阅读:
    JAVA类和对象
    JAVA数组
    JAVA流程控制语句
    JAVA运算符
    JAVA数据类型-整数、浮点、字符串、boolean、引用数据类型
    JAVA变量
    JAVA文档注释的三种方式
    @Transactional注解失效的场景总结
    接口幂等性
    事务的四个特性、四种隔离级别和七种传播行为
  • 原文地址:https://www.cnblogs.com/liangmingshen/p/11302487.html
Copyright © 2011-2022 走看看