精华内容
下载资源
问答
  • 如下所示: import re c = re.compile(r'\d') s = 'you1are2welcome' # 用指定的内容,替换正则匹配的内容,也可以...ret = re.sub(r'\d', deal, 'you1are2welcome') print(ret) 结果: you are2welcome you2are4
  • python re.sub

    2019-01-08 07:19:28
    python re.sub   python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串然后把它替换成自己想要的字符串的方法下面给个例子:import relink = re.compile("\d+")content = ...

    python re.sub

     

    python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串
    然后把它替换成自己想要的字符串的方法
    下面给个例子:
    import re
    link = re.compile("\d+")
    content = "laowang-222haha"
    info = re.sub(link,'www.cnpythoner.com',content)
    print info
    info这个字符串就是替换好的

    'laowang-www.cnpythoner.comhaha'


    re.sub 函数进行以正则表达式为基础的替换工作

    1. >>> import re 
    2. >>> re.search('[abc]', 'Mark') 
    3. <_sre.SRE_Match object at 0x001C1FA8> 
    4. >>> re.sub('[abc]', 'o', 'Mark') 
    5. 'Mork' 
    6. >>> re.sub('[abc]', 'o', 'rock') 
    7. 'rook' 
    8. >>> re.sub('[abc]', 'o', 'caps') 
    9. 'oops' 

    Mark 包含 a,b,或者 c吗?是的,含有 a。

    好的,现在找出 a,b,或者 c 并以 o 取代之。Mark 就变成 Mork 了。

    同一方法可以将 rock 变成 rook。

    你可能认为它可以将 caps 变成 oaps,但事实并非如此。re.sub 替换所有 的匹配项,并不只是第一个匹配项。因此正则表达式将会把 caps 变成 oops,因为 c 和 a 都被转换为 o了。


    如果想详细了解的话,可以看下python替换,或者是: [字符串替换

    文章转载:http://www.cnpythoner.com/post/19.html

    展开全文
  • 主要介绍了python字符串替换re.sub()实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • python re.sub 括号匹配替换匹配到的内容后接数字.pdf
  • 需要使用re.sub(pattern, repl, str) 把上面的所有字为"音频"的替换为 "音频</b>" 但又不能替换在标签内的"音频" 请问如何写这个正则 我自己的思路是: pattern = ">[^<]*?音频.* ? repl = r">音频</b><" ...
  • 1.第一个参数:pattern pattern,表示正则表达式 反斜杠加数字(\N),则对应着匹配的组(matched group) 比如\6,表示匹配前面...In [1]: import re In [2]: inputStr = "hello crifan, nihao crifan" In [3]: r

    1.第一个参数:pattern

    pattern,表示正则表达式
    反斜杠加数字(\N),则对应着匹配的组(matched group)
    比如\6,表示匹配前面pattern中的第6个group
    意味着,pattern中,前面肯定是存在对应的,第6个group,然后你后面也才能去引用
    返回值: 如果匹配到对应组中的内容,怎返回repl
    

    反斜杠加数字(\N)

    In [1]: import re
    
    In [2]: inputStr = "hello crifan, nihao crifan"
    
    In [3]: replacedStr = re.sub(r"hello (\w+), nihao \1", "crifanli", inputStr)
    
    In [4]: print ("replacedStr=",replacedStr) #crifanli
    # 输出
    replacedStr= crifanli
    

    不加反斜杠加数字(\N)

    In [5]: replacedStr = re.sub(r"hello (\w+), nihao", "crifanli", inputStr)
    
    In [6]: print ("replacedStr=",replacedStr) #crifanli
    # 输出
    replacedStr= crifanli crifan
                        
    

    2.第二个参数:repl

    repl,就是replacement,被替换,的字符串的意思。
    repl可以是字符串,也可以是函数。
    

    repl是字符串

    如果repl是字符串的话,其中的任何反斜杠转义字符,都会被处理的。
    即:
    \n:会被处理为对应的换行符;
    \r:会被处理为回车符;
    其他不能识别的转移字符,则只是被识别为普通的字符:
    比如\j,会被处理为j这个字母本身;
    反斜杠加g以及中括号内一个名字,即:\g,对应着命了名的组,named group
    

    接着上面的举例,想要把对应的 “hello crifan, nihao” 中的crifan提取出来,只剩crifan

    In [7]: inputStr = "hello crifan, nihao crifan"
    
    In [8]: replacedStr = re.sub(r"hello (\w+), nihao \1", "\g<1>", inputStr)
    
    In [9]: print("replacedStr =",replacedStr) #crifan
    
    # 输出
    replacedStr = crifan
    
    In [10]: replacedStr = re.sub(r"hello (\w+), nihao", "\g<1>", inputStr)
    
    In [11]: print("replacedStr =",replacedStr) #crifan
    # 输出
    replacedStr = crifan crifan
    
    
    

    带命名的组(named group)

    In [12]: inputStr = "hello crifan, nihao crifan"
    
    In [13]: replacedStr = re.sub(r"hello (?P<name>\w+), nihao (?P=name)", "\g<name>", inputStr)
    
    In [14]: print("replacedStr =",replacedStr) #crifan
    replacedStr = crifan
    

    repl是函数

    举例说明:
    比如输入内容是:
    hello 123 world 456
    想要把其中的数字部分,都加上111,变成:
    hello 234 world 567

    # 该函数对匹配到的组进行操作,然后返回,re.sub使用函数返回值进行替换
    def _add111(matched):
        intStr = matched.group("number")  # 123
    
        intValue = int(intStr)
        addedValue = intValue + 111  # 234
        addedValueStr = str(addedValue)
        return addedValueStr
    
    
    replacedStr = re.sub(r"(?P<number>\d+)", _add111, inputStr)
    
    print("replacedStr=", replacedStr)  # hello 234 world 567
    # 输出
    replacedStr= hello 234 world 567
    
    

    3.第三个参数:string

    string,即表示要被处理,要被替换的那个string字符串。
    

    4.第四个参数:count

    举例说明:
    继续之前的例子,假如对于匹配到的内容,只处理其中一部分。
    比如对于:
    hello 123 world 456 nihao 789
    只是像要处理前面两个数字:123,456,分别给他们加111,而不处理789,
    那么就可以写成:

    import re
    inputStr = "hello 123 world 456 nihao 789"
    
    
    def _add111(matched):
        intStr = matched.group("number")  # 123
    
        intValue = int(intStr)
        addedValue = intValue + 111  # 234
        addedValueStr = str(addedValue)
        return addedValueStr
    
    
    replacedStr = re.sub(r"(?P<number>\d+)", _add111, inputStr, 2)
    
    print("replacedStr=", replacedStr)
    # 输出 
    #hello 234 world 567 nihao 789
    

    5.第五个参数:flags

    re.I
        IGNORECASE
        忽略字母大小写
    
    re.L
        LOCALE
        影响 “w, “W, “b, 和 “B,这取决于当前的本地化设置。
    
    re.M
        MULTILINE
        使用本标志后,‘^’和‘$’匹配行首和行尾时,会增加换行符之前和之后的位置。
    
    re.S
        DOTALL
        使 “.” 特殊字符完全匹配任何字符,包括换行;没有这个标志, “.” 匹配除了换行符外的任何字符。
    
    re.X
        VERBOSE
        当该标志被指定时,在 RE 字符串中的空白符被忽略,除非该空白符在字符类中或在反斜杠之后。
        它也可以允许你将注释写入 RE,这些注释会被引擎忽略;
        注释用 “#”号 来标识,不过该符号不能在字符串或反斜杠之后。
    
    展开全文
  • re.sub函数的定义 def sub(pattern, repl, string, count=0, flags=0): """Return the string obtained by replacing the leftmost non-overlapping occurrences of the pattern in string by the replacement ...

    re.sub函数的定义

    def sub(pattern, repl, string, count=0, flags=0):
        """Return the string obtained by replacing the leftmost
        non-overlapping occurrences of the pattern in string by the
        replacement repl.  repl can be either a string or a callable;
        if a string, backslash escapes in it are processed.  If it is
        a callable, it's passed the Match object and must return
        a replacement string to be used."""
        return _compile(pattern, flags).sub(repl, string, count)
    

    参数count、flags都为int型

    查看re.S的定义为

    DOTALL = sre_compile.SRE_FLAG_DOTALL # make dot match newline
    
    S = DOTALL
    
    SRE_FLAG_DOTALL = 16 # treat target as a single string
    

    最终对应一个数值为16的int型变量

    所以在使用中未指明参数名称,如:re.sub(r’a’,’’,re.S)
    会导致re.S生效的同时,count参数被置为16,因为count的位置为3

    示例:

    content='aaaaaaaaaaaaaaaaaaaa'
    content=re.sub(r'a','',content,re.S)
    print(content)
    
    输出:
    aaaa
    

    发现有16个a被替换,而re.S对应的定义恰恰是16

    再看看,re.S匹配换行符的功能有没有生效

    content1='aaaaaaaaaaaaaa\naaaaaa'
    content1=re.sub(r'.*?','x',content1,re.S)
    print(content1)
    
    输出:
    xxxxxxxxxxxxxxxxaaaaaa
    aaaaaa
    
    

    发现re.S原本的功能失效

    
    content1='aaaaaaaaaaaaaa\naaaaaa'
    content1=re.sub(r'.*?','x',content1,flags=re.S)
    print(content1)
    
    输出:
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

    解决方法:
    在使用时指明参数名称就行
    re.sub默认替换全部

    展开全文
  • Python re.sub函数

    2019-07-24 10:24:00
    转载于:https://www.cnblogs.com/fanweisheng/p/11236313.html

     

    转载于:https://www.cnblogs.com/fanweisheng/p/11236313.html

    展开全文
  • json_str = re.sub('\n',"",json_str) json_str = re.sub("\s","",json_str) json_str = re.sub('"\[',"[",json_str) #存在这种情况,所以需要"/"[ json_str = re.sub('"\[',"[",json_str) json_str = re.sub...
  • 文章目录需求Show Me The Code后语 需求 最终实现的效果如下: 替换 everything is alright. 为 everybody is alright....re.sub('(every).*?(\\s.*\\.)',r'\1body\2',src) # everybody is alright. 后语 就这。 ...
  • python re.sub正则替换

    千次阅读 2018-09-27 20:23:41
    在匹配后面写成language,0 含义是匹配所有的c#,如果还有的话,会全部被替换成GO ...import re a = "123abc456" print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返...
  • python re.sub 正则表达式过滤指定字符

    千次阅读 2018-10-07 19:37:23
    详解Pythonre.sub re.sub(pattern, repl, string, count=0, flags=0) Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl. If...
  • text = re.sub(r'(?<=[{])([a-z]+)6(?=[}])', r'\13', text) 上面代码会报错,因为没有组合13,所以不能获得组合13的内容。 但是我们要实现的是将{ni6}中的ni6替换成ni3,我们应该这么写: text = re.sub(r'(?...
  • python re.sub模块清洗数据

    千次阅读 2018-06-01 10:19:56
    re.sub()有三个必选的参数:pattern(要匹配的字符等),repl(要替换成的字符),string(源数据).还有两个可选参数count,flags. 比如要去掉字符串末尾的’,’,’?’,’.’等符号时,可以选择下面的代码实现: 其中[]...
  • python re.sub()替换正则的匹配内容

    千次阅读 2018-10-10 09:09:56
    import re c = re.compile(r'\d') s = 'you1are2welcome' ...ret = c.sub(' ', s, 1) print(ret) # 处理函数接收一个参数(每次的匹配结果) def deal(s): return str(int(s.group()) * 2) # 可以...
  • Python re.sub介绍

    千次阅读 2016-11-18 15:58:40
    re.sub的功能 sub是substitute的所写,表示替换; re.sub是个正则表达式方面的函数,用来实现通过正则表达式,实现比普通字符串的replace更加强大的替换功能; 举个最简单的例子: 如果输入字符串是: ? ...
  • pattern可以是一个字符串也可以是一个正则,用于匹配要替换的字符,如果不写,字符串不做修改。\1 代表第一个分组 repl是将会被替换的值,repl可以是字符串也可以是一个方法。如果是一个字符串,反...a = re.sub(r'he
  • 今天小编就为大家分享一篇Python 正则表达式 re.match/re.search/re.sub的使用解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • #!/usr/bin/python ...num = re.sub(r'#.*$',"",number) print("电话:",num) num = re.sub(r"\D","",number) print("phone:",num) def double(math): s = int(math.group('s')) return str(s * 2) p
  • python re.sub 正则匹配

    千次阅读 2014-08-12 09:32:47
    print re.sub('.*?','',str(div),flags=re.DOTALL) 。
  • Python正则表达式re.sub功能详解 正则表达式:regular expression, 缩写为re;sub即substitute(替换) ; re.sub 语法结构: re.sub (pattern, repl, string, count, flags),其中pattern, repl, string这三个参数...
  • Python re.sub

    2014-03-07 11:06:16
    在看>的时候有个地方看不懂 >>> import re >>> emphasis_patten = re.compile(r''' \* ( [^\*]+ ) \* ...>>> re.sub(emphasis_patten, r'\1', 'hello, *world*!') 'hello, world!' 不知道为什么\1
  • 在本篇文章里小编给大家整理了关于Python re正则表达式元字符分组()的相关知识点实例,需要的朋友们可以学习下。
  • title: 正则表达式re.sub替换不完整的问题现象及其根本原因 toc: true comment: true date: 2018-08-27 21:48:22 tags: [“Python”, “正则表达式”] category: [“Python”] — 问题描述 问题的起因来自于一段...
  • re.sub共有五个参数。 re.sub(pattern, repl, string, count=0, flags=0) 其中三个必选参数:pattern, repl, string 两个可选参数:count, flags 第一个参数:pattern pattern,表示正则中的模式字符串,这个没太多...
  • re.sub(pattern, repl,string, count=0, flags=0) 搜索字符串,以列表类型返回全部能匹配的子串 pattern : 正则表达式的字符串或原生字符串表示 repl : 替换匹配字符串的字符串 string : 待匹配字符串 count : 匹配...
  • Python:re.sub()实现字符串替换 re.sub的功能 re是regular expression的缩写,表示正则表达式;sub是substitude的缩写,表示替换 re.sub是正则表达式的函数,实现比普通字符串更强大的替换功能 sub(pattern,repl,...
  • @[TOC]Python正则表示是使用 1、引入正则表达式 import re 2、使用re.sub进行字符串替换 re.sub(pattern, repl, string, count=0, flags=0) 其中三个必选参数:pattern, repl, string 两个可选参数:count, ...
  • line = re.sub(str(old),str(new),line) configfileLine += line else: configfileLine += line with open(deploy.servicedir + str(i) + '/Config.lua', 'w')as f: f.write(configfileLine) configfileLine ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,470
精华内容 17,788
关键字:

pythonre.sub

python 订阅