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

  • 相关阅读:
    BZOJ BLO 1123 (割点)【双连通】
    P4291 [HAOI2008]排名系统
    P3165 [CQOI2014]排序机械臂
    P3224 [HNOI2012]永无乡
    P1169 [ZJOI2007]棋盘制作
    P2303 [SDOi2012]Longge的问题
    P2216 [HAOI2007]理想的正方形
    P2473 [SCOI2008]奖励关
    P2617 Dynamic Rankings
    P2518 [HAOI2010]计数
  • 原文地址:https://www.cnblogs.com/liangmingshen/p/11302487.html
Copyright © 2011-2022 走看看