请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

老师:代码是这样:
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

3回答

7七月 2019-03-09 01:54:58

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

1 回复 有任何疑惑可以回复我~
  • 提问者 William_0002 #1
    也就是说所有的Python对象都有group方法对吧
    回复 有任何疑惑可以回复我~ 2019-03-12 22:45:15
  • 7七月 回复 提问者 William_0002 #2
    咋推出来Python所有对象都有group的?这个逻辑是怎么推导出来的?
    回复 有任何疑惑可以回复我~ 2019-03-13 00:50:18
  • 提问者 William_0002 回复 7七月 #3
    正则表达式匹配结果对象有group这个方法
    回复 有任何疑惑可以回复我~ 2019-03-13 09:37:55
7七月 2019-03-09 00:07:39

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 William_0002 #1
    打印过了,有span,有match,但是没有group啊
    回复 有任何疑惑可以回复我~ 2019-03-09 00:18:38
7七月 2019-03-08 14:48:17

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

0 回复 有任何疑惑可以回复我~
  • 提问者 William_0002 #1
    这是格式化过的,慕课网的问题没有显示空格,就一个convert函数而已,其他都是定义和调用
    回复 有任何疑惑可以回复我~ 2019-03-08 22:17:31
  • 提问者 William_0002 #2
    很简单的代码,我之前是上传图片给您,你也表示看不了,其实横着看就行
    回复 有任何疑惑可以回复我~ 2019-03-08 22:18:29
  • 提问者 William_0002 #3
    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 23:57:48

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信