• python正则表达式(6)--split、sub、escape方法


    1.re.split

    语法:

      re.split(pattern, string[, maxsplit=0, flags=0])

    参数:

      pattern    匹配的正则表达式

      string      要匹配的字符串。

          maxsplit  分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数。

    >>>import re

    >>> re.split('W+', 'runoob, runoob, runoob.')

    ['runoob', 'runoob', 'runoob', '']

    (1)以分组为分割符的时候,分组内容也会被保存下来

    >>> re.split('(W+)', ' runoob, runoob, runoob.')

    ['', ' ', 'runoob', ', ', 'runoob', ', ', 'runoob', '.', '']

    >>> re.split('W+', ' runoob, runoob, runoob.', 1)

    ['', 'runoob, runoob, runoob.']

    (2)可同时使用多个分隔符,分隔符,和.都会被切割

    >>> re.split('[,.]',r'hello,Tom.how are you')

    ['hello', 'Tom', 'how are you']

    (3)对于一个找不到匹配的字符串而言,split 不会对其作出分割

    >>> re.split('a*', 'hello world')

    ['hello world']

    2.sub方法

    语法:

      re.sub(pattern, repl, string, count=0, flags=0)

      pattern.sub(repl, string[, count = 0])

    参数:

    • pattern : 正则中的模式字符串。
    • repl : 替换的字符串,也可为一个函数。
    • string : 要被查找替换的原始字符串。
    • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

    1) 当repl是一个字符串

    可以使用id或g<id>、g<name>引用分组,但不能使用编号0。

    2) 当repl是一个方法

    它必须传一个Match对象,并必须返回一个字符串用于替换(返回的字符串中不能再引用分组)。

    (2)subn方法

    这个函数跟sub函数用法差不多,只是它有一个额外的特征,结果是返回一个tuple,tuple第 一个元素是替换后的新字符串,第二个元素是替换的次数

    import re

    def add(m):

    v = int(m.group(0))

    return str(v + 1)

    p = re.compile("(d+)")

    result = p.subn(add, "1 2 3 4 5")

    print result

    >>>('2 3 4 5 6', 5)

    3.re.escape方法

    可以将字符串中所有可能被解释为正则运算符的字符进行转译。

    >>> re.escape('www.python.org')

    'www\.python\.org'

  • 相关阅读:
    leetcode【dynamic】【0】
    VIM 常用指令
    《Java多线程编程核心技术》笔记
    log4j配置文件详解
    CSU 1803 2016(同余公式)2016年湖南省第十二届大学生计算机程序设计竞赛
    NYOJ 1233 差值(字符串排序+大数减法)
    HDU 5723 Abandoned country(最小生成树+DFS)
    POJ 1451 T9 字典树
    POJ 2965 The Pilots Brothers' refrigerator 状态压缩+广搜
    POJ 1753 Flip game状态压缩+广搜
  • 原文地址:https://www.cnblogs.com/zeke-python-road/p/9583814.html
Copyright © 2020-2023  润新知