Chinaunix

标题: 字浮串处理 [打印本页]

作者: shihyu    时间: 2010-03-18 00:13
标题: 字浮串处理
我想把 >30</font></b> 字浮串处理只保留数字
就是只要30 剩下的都不要 请问python 有这样函数吗?

还是有什么好方法处理

谢谢
作者: pywugw    时间: 2010-03-18 00:15
用re吧
作者: shihyu    时间: 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
复制代码
目前是想到这要处理不知道有没有更好方法
作者: pywugw    时间: 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',)
复制代码

作者: shihyu    时间: 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

作者: pywugw    时间: 2010-03-18 01:28
url 访问不了
作者: shihyu    时间: 2010-03-18 03:28
url 可以访问
作者: ukyo502    时间: 2010-03-18 08:07
  1. re.findall(r'\d+','>30</font></b>')
复制代码

作者: pywugw    时间: 2010-03-18 09:23
回复 7# shihyu


    奇怪了,我访问不了url,其他人可以访问?
作者: advancejar    时间: 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

这次是把所有的数字加最后一个特别数字都给你了
作者: fzlqq    时间: 2010-03-19 15:37
"".join([i for i in s if 48<=ord(i)<58 ])
作者: shihyu    时间: 2010-03-20 01:54
楼主,前面我给你出了个题,看来还没研究到位啊。

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


(\d+\s+\d+\s+\d+\s+\ ...
advancejar 发表于 2010-03-18 16:33



(\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+).*?\>(\d+)


(\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+).*\>(\d+)      // 不用? 應該也可以吧?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2