clwn.net
当前位置:首页 >> python中rE.FinDAll()的返回值的问题 >>

python中rE.FinDAll()的返回值的问题

先再套一层括号,返回后,再只取第一项print [i[0] for i in re.findall(r'((.)..\2)', 'abbaacddccc')]好像有点笨,只能帮到这了

个人观点: 用分行保存更方便进一步处理 with open('tmp_parsered.txt', 'wt') as handle: handle.write( '\n'.join(r.findall(data1)) )

images = bsObj.findAll("img", {"src":re.compile("\.\.\/img\/gifts/img.*\.jpg")})这行返回的是bs4的一个结果集 一般使用type()能显示这样的结果:bs4.element.ResultSet 所以不是有序的

第一个问题,你搞错了,不是逗号,是两个空字符串,返回的结果列比里其实有三个元素.虽然看起来很像两个.所以,它找到了符合条件的三个对象,也就是['section{First', '', ''] .右大括号的位置是理解的关键.第二个问题.sub方法是用你指

括号里面的两个是参数,位置不能调换.findall是re对象里的一个方法,这个方法需要2个参数:reg,html.这两个参数应该在上面的代码有定义.你可以把“方法”理解成一个生产机器,“参数”就是原材料.那么方法的返回值就是生产机器生产出来的产品.

可能是库的 re.pyc文件有问题, 删除 re.pyc文件,再重新执行代码.在我电脑上测试,代码没问题.>>> >>> import re>>> a='xyz123'>>> b=re.findall('y..',a)>>> print(b)['yz1']>>>

光从你这个栈追踪上看不出什么问题你可以试试换成re.search(r'datanode.*(\d).+', a).group(1)

你的comile用了分组了,findall就只输出匹配到的分组字符了

[ ] 中的^表示取反,“非”的意思.[^=;] 匹配 不为等号=且不为分号;的一个字符* 表示前面这个字符出现0次或多次

关键在于查找时间的正则表达式,也就是程序中reg变量的字符串,你可以去了解一下 import res = """<a class="time" target="_blank" href="">昨天 00:26</a><a class="time" target="_blank" href="">今天 00:26</a>"""def getTime(html): reg = r'<a class="time".*>(.*)</a>' timere = re.compile(reg) timelist = re.findall(timere,html) for t in timelist: print tgetTime(s)

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com