【python学习笔记】 re.sub()

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

pattern:表示正则表达式中的模式字符串;

repl:被替换的字符串(既可以是字符串,也可以是函数);

string:要被处理的,要被替换的字符串;

count:匹配的次数, 默认是全部替换

flags:具体用处不详

----------------------- 以上引用来自网络引用-----------------------------

帮助文档

Help on function sub in module re:

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.
(END)
--------------------------------------------------------------------------------
应用:

如果要随机替换几人得到的苹果数

 

import re
from random import randint

string1 = '''

1、杨过得到了6个苹果

2、郭靖苹果有8

3、张无忌被送了7个苹果

4、其他人没有得到苹果

5、赵敏得到了18个梨

'''
my_string = re.sub(r"\d+\w*苹果|苹果\w*\d+", lambda m: re.sub(r"\d+", lambda m1: str(randint(3, int(m1.group()) + 6)), m.group()), string1)
print(my_string)

 

运行结果:

1、杨过得到了8个苹果

2、郭靖苹果有10

3、张无忌被送了3个苹果

4、其他人没有得到苹果

5、赵敏得到了18个梨

 

 

 

posted on 2019-03-29 20:31  smoggy  阅读(363)  评论(0编辑  收藏  举报