zoukankan      html  css  js  c++  java
  • python 正则表达式 re.sub & re.subn

    Grammar:

    re.sub(pattern, repl, string[, count])

    使用repl替换string中每一个匹配的子串后返回替换后的字符串。
    当repl是一个字符串时,可以使用id或g、g引用分组,但不能使用编号0。
    当repl是一个方法时,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组)。
    count用于指定最多替换次数,不指定时全部替换。

    re.subn(pattern, repl, string[, count])

    返回 (sub(repl, string[, count]), 替换次数)。

    Case:

     1 #coding=utf-8
     2 
     3 import re
     4 
     5 str = "https://i.cnb1logs.co2m/Edi3tPosts.asp4x?opt=999"
     6 
     7 
     8 pattern=re.compile(r'(.)')
     9 print '.          :' ,re.sub(pattern,'-',str)
    10 
    11 pattern=re.compile(r'/([^*]+)/')
    12 print '/([^*]+)/ :' ,re.sub(pattern,r'<em>1<em>',str)
    13 
    14 pattern = re.compile(r'(w+)(w+)(d+)')
    15 #先切片测试
    16 print re.split(pattern,str)
    17 print re.sub(pattern,r'3 1',str)
    18 #subn统计sub替换次数
    19 print re.subn(pattern,r'3 1',str)  

    Output

    1 .          : https://i-cnb1logs-co2m/Edi3tPosts-asp4x?opt=999
    2 /([^*]+)/ : https:<em>/i.cnb1logs.co2m<em>Edi3tPosts.asp4x?opt=999
    3 ['https://i.', 'cn', 'b', '1', 'logs.', 'c', 'o', '2', 'm/', 'Ed', 'i', '3', 'tPosts.', 'as', 'p', '4', 'x?opt=', '9', '9', '9', '']
    4 https://i.1 cnlogs.2 cm/3 EdtPosts.4 asx?opt=9 9
    5 ('https://i.1 cnlogs.2 cm/3 EdtPosts.4 asx?opt=9 9', 5)
    6 
    7 ***Repl Closed***

    quote:http://cuiqingcai.com/977.html

  • 相关阅读:
    分析函数
    Orcal函数
    归档日志
    JSP数据交互
    JSP
    接口
    JAVA修饰符
    QuicKHit
    Java 三章错题
    Java 多态
  • 原文地址:https://www.cnblogs.com/sub2020/p/7942113.html
Copyright © 2011-2022 走看看