采集的小蜜蜂 发表于 2019-8-11 09:40

【Pyhton】初学,引用(.*?)出现问题。

本帖最后由 采集的小蜜蜂 于 2019-8-11 10:58 编辑

import re
content='微博账号:kingname,我的微博密码是:1234567,QQ帐号:99999,QQ密码是:33445566,银行卡账号:000001,银行卡密码是:888888,帮我记住他们'
#password_list=re.findall(':(.*?),',content)
#name_list=re.findall('名字是(.*?),',content)
result_list=re.findall('帐号:(.*?),密码是:(.*?),',content)
#print('找到内容,返回{}'.format(password_list))
#print('找不到任何内容,返回{}'.format(name_list))
print('找到的情况下,返回{}'.format(result_list))

有人知道为什么返回的空吗?

如果把re.findall中'帐号:(.*?),'去掉,就可以获取到密码。我改了改符号,还是获取不到。返回的[]为空
如果把re.findall中'密码:(.*?),'去掉,只能获取到QQ帐号。这到底是怎么回事

ermao 发表于 2019-8-11 10:28

ermao 发表于 2019-8-11 10:22
n你的源文本和书上的源文本不一样,书上只有“密码是”,你的多了一些“QQ”、“银行卡”这样的名词,加 ...

你这账号的“账”都不一样,自然匹配不到所有的。。。

ermao 发表于 2019-8-11 09:57

'帐号:(.*?),密码是:(.*?),'匹配不了帐号:99999,QQ密码是,因为中间有其他字符【QQ】,加个通配符就行了

'帐号:(.*?),.*?密码是:(.*?),'

Rnb。 发表于 2019-8-11 09:59

????????

Cellluo 发表于 2019-8-11 10:07

正则表达式不对,你在写正则表达的时候 ,可以先测试匹配 ,有那种正则表达在线测试

采集的小蜜蜂 发表于 2019-8-11 10:10

ermao 发表于 2019-8-11 09:57
匹配不了帐号 ...

只返回了QQ的帐号和密码,这是为什么呢?书上就是这样写的,我为什么跟书上的返回结果不一样

采集的小蜜蜂 发表于 2019-8-11 10:12

Cellluo 发表于 2019-8-11 10:07
正则表达式不对,你在写正则表达的时候 ,可以先测试匹配 ,有那种正则表达在线测试

好的,我去试试

V风习习 发表于 2019-8-11 10:14

Cellluo 发表于 2019-8-11 10:07
正则表达式不对,你在写正则表达的时候 ,可以先测试匹配 ,有那种正则表达在线测试

Pycharm自带正则匹配 不用去网站找的

ermao 发表于 2019-8-11 10:22

采集的小蜜蜂 发表于 2019-8-11 10:10
只返回了QQ的帐号和密码,这是为什么呢?书上就是这样写的,我为什么跟书上的返回结果不一样

n你的源文本和书上的源文本不一样,书上只有“密码是”,你的多了一些“QQ”、“银行卡”这样的名词,加了通配符是可以取到的。

bluerabbit 发表于 2019-8-11 10:52

改成这样      result_list=re.findall('[账帐]号:(.*?),\w+:(.*?),',content)
页: [1] 2
查看完整版本: 【Pyhton】初学,引用(.*?)出现问题。