【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:22
n你的源文本和书上的源文本不一样,书上只有“密码是”,你的多了一些“QQ”、“银行卡”这样的名词,加 ...
你这账号的“账”都不一样,自然匹配不到所有的。。。 '帐号:(.*?),密码是:(.*?),'匹配不了帐号:99999,QQ密码是,因为中间有其他字符【QQ】,加个通配符就行了
'帐号:(.*?),.*?密码是:(.*?),' ???????? 正则表达式不对,你在写正则表达的时候 ,可以先测试匹配 ,有那种正则表达在线测试 ermao 发表于 2019-8-11 09:57
匹配不了帐号 ...
只返回了QQ的帐号和密码,这是为什么呢?书上就是这样写的,我为什么跟书上的返回结果不一样
Cellluo 发表于 2019-8-11 10:07
正则表达式不对,你在写正则表达的时候 ,可以先测试匹配 ,有那种正则表达在线测试
好的,我去试试 Cellluo 发表于 2019-8-11 10:07
正则表达式不对,你在写正则表达的时候 ,可以先测试匹配 ,有那种正则表达在线测试
Pycharm自带正则匹配 不用去网站找的 采集的小蜜蜂 发表于 2019-8-11 10:10
只返回了QQ的帐号和密码,这是为什么呢?书上就是这样写的,我为什么跟书上的返回结果不一样
n你的源文本和书上的源文本不一样,书上只有“密码是”,你的多了一些“QQ”、“银行卡”这样的名词,加了通配符是可以取到的。 改成这样 result_list=re.findall('[账帐]号:(.*?),\w+:(.*?),',content)
页:
[1]
2