不太理解这句话什么意思

来源:6-1 正则表达式模块

若羲

2022-05-01 22:02:59

#将字符串变成 '我要学Python编程'
s = "我我...我我...我要..要要...要要...学学学...学学..Python...编编编..编程..程.程...程...程"
res = re.sub(r'\W+', '', s)  # 提取非数字字符下划线的内容,即去掉…符号
print(res)
ret = re.sub(r'(.)\1+', r'\1', res)  # TODO:不太理解这句话什么意思?
print(ret)


写回答

1回答

好帮手慕凡

2022-05-03

同学,你好!

1、"."可以匹配任何字符(除外\n换行)

https://img.mukewang.com/climg/6270977e095ba33107690370.jpg

2、\1表示对前面第一个分组内容的引用;+是匹配1个或多个

http://img.mukewang.com/climg/6097782a0923f49713590142.jpg

3、(.)\1+:\1可以引用第一个括号(.)中匹配成功后的内容,r'(.)\1+'将第一组中(.)匹配的内容匹配多次(如:“我我我我我”),r'\1'将第一组中(.)匹配的内容匹配一次(如:“我”);

https://img.mukewang.com/climg/62709872090d49a017820353.jpg

4、re.sub(pattern, repl, string) 函数中参数pattern为正则表达式匹配到要被替换的字符串,repl为替换的字符(可为字符、匹配到的字符或者函数),string为要被查找替换的原始字符串;

5、 re.sub(r'(.)\1+',r'\1',res):将r'(.)\1+'匹配到的内容(如:“我我我我我”)替换为r'\1'(如:“我”)

https://img.mukewang.com/climg/6270992f0925df1118810658.jpg

同学还有哪里不理解,可以继续提问哦,祝学习愉快~

0

0 学习 · 2433 问题

查看课程