正则表达式关于re.sub的问题(group)

来源:10-11 re.sub正则替换

William_0002

2019-03-08

老师:代码是这样:
import re
s='ABCD56789HY812’
def convet(value):
matched = value.group()
if int(matched) >=6:
return '9’
else:
return ‘0’

r = re.sub(’\d’,convert , s)
print®

请问,代码中value.group()中的group函数怎么来的,如何查找知道被传入的value有个group函数,并且该函数返回数值

写回答

3回答

7七月

2019-03-09

//img.mukewang.com/szimg/5c82ac450001cbcd10480276.jpg 传入的是一个Match 这是一个Python对象,这个对象就有group方法。可以去看看管这个对象的参数说明。这是Python的对象,就是有group这个方法。

1
6
7七月
回复
William_0002
不客气。多分析一下,可能自己分析不出来。但是如果你多分析下,我们的交流也会顺畅很多。
2019-03-18
共6条回复

7七月

2019-03-09

value是一个参数,是re.sub 执行的时候由python 传递这个参数。这个参数就是正则的匹配结果。其实,你在这个代码中打印一下value,就知道他为什么带group了。

还可以百度搜索 Python re.sub 会有非常详细的资料。

0
1
William_0002
打印过了,有span,有match,但是没有group啊
2019-03-09
共1条回复

7七月

2019-03-08

可否格式化一下代码,这样对齐的我很难看出来结构呀。

0
3
William_0002
import re s='ABCD56789HY812’ def convet(value): matched = value.group() if int(matched) >=6: return '9’ else: return ‘0’ r = re.sub(’\d’,convert , s) print(r)
2019-03-08
共3条回复

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14446 学习 · 4438 问题

查看课程