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中有问号时, 要加 转义,不然切分完全会不同。

  • 相关阅读:
    【动态规划】数字三角形4
    【动态规划】数字三角形3
    【动态规划】数字三角形2
    被破坏的电力系统
    二分法求函数的零点
    膨胀的木棍
    不重复地输出数
    和为给定数
    乘法游戏
    「AHOI2014/JSOI2014」拼图
  • 原文地址:https://www.cnblogs.com/liangmingshen/p/11302487.html
Copyright © 2011-2022 走看看