免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3168 | 回复: 11
打印 上一主题 下一主题

字浮串处理 [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:03
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-18 00:13 |只看该作者 |倒序浏览
我想把 >30</font></b> 字浮串处理只保留数字
就是只要30 剩下的都不要 请问python 有这样函数吗?

还是有什么好方法处理

谢谢

论坛徽章:
0
2 [报告]
发表于 2010-03-18 00:15 |只看该作者
用re吧

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:03
3 [报告]
发表于 2010-03-18 00:47 |只看该作者
本帖最后由 shihyu 于 2010-03-18 01:04 编辑
  1.     p=re.compile('(>[0-9]+</font></b>)')
  2.     m=p.search(page).group()
  3.     k=re.sub(r'\D', '', m)
  4.     print k
复制代码
目前是想到这要处理不知道有没有更好方法

论坛徽章:
0
4 [报告]
发表于 2010-03-18 01:04 |只看该作者
  1. >>> a = '</font> + <b><font color="#FF0000">30</font></b>'
  2. >>> import re
  3. >>> p = re.compile('>([0-9]+)</font>')
  4. >>> m = p.search(a)
  5. >>> m
  6. <_sre.SRE_Match object at 0xb7f64c20>
  7. >>> m.groups()
  8. ('30',)
复制代码

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:03
5 [报告]
发表于 2010-03-18 01:19 |只看该作者
本帖最后由 shihyu 于 2010-03-18 01:21 编辑

  1. # -*- coding: utf-8 -*-

  2. import urllib
  3. import re

  4. def fetch(url):
  5.     page=urllib.urlopen(url).read()
  6.     print page

  7.     p=re.compile('([0-9]+-[0-9]+-[0-9]+)')
  8.     m=p.search(page).group()
  9.     print u"开奖日期:" + m

  10.     pat=re.compile(r"\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+")
  11.     cont=pat.search(page).group(0)
  12.     print u"开奖号码:" + cont

  13.     p=re.compile('(>[0-9]+</font></b>)')
  14.     m=p.search(page).group()
  15.     k=re.sub(r'\D', '', m)
  16.     print u"特别号码:" + k

  17.             
  18. url = "http://lotto.arclink.com.tw/kj_6.html"
  19. fetch(url)
  20. raw_input()
复制代码
我现在已经可以处理第一笔号码

请问要怎么让代码往下再处理? 代码要怎么写?

谢谢

234.jpg (65.78 KB, 下载次数: 17)

234.jpg

论坛徽章:
0
6 [报告]
发表于 2010-03-18 01:28 |只看该作者
url 访问不了

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:03
7 [报告]
发表于 2010-03-18 03:28 |只看该作者
url 可以访问

论坛徽章:
0
8 [报告]
发表于 2010-03-18 08:07 |只看该作者
  1. re.findall(r'\d+','>30</font></b>')
复制代码

论坛徽章:
0
9 [报告]
发表于 2010-03-18 09:23 |只看该作者
回复 7# shihyu


    奇怪了,我访问不了url,其他人可以访问?

论坛徽章:
0
10 [报告]
发表于 2010-03-18 16:33 |只看该作者
楼主,前面我给你出了个题,看来还没研究到位啊。

我公布下你的所有的正则吧


(\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+).*?\>(\d+)
re.compile(r"(\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+).*?\>(\d+)")

然后取gourp(1),group(2)
就是
group(1)=39 22 04 01 14 18
group(2)=48

这次是把所有的数字加最后一个特别数字都给你了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP