【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个梨