【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)
--------------------------------------------------------------------------------
应用:

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

扫描二维码关注公众号,回复: 5711296 查看本文章
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个梨

 

猜你喜欢

转载自www.cnblogs.com/smoggy/p/10623762.html
今日推荐