苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3038|回复: 3

[其他] 初学正则表达式求助

[复制链接]
发表于 2013-7-24 11:14:35 | 显示全部楼层 |阅读模式
有个网页 其html代码如下
[{'all':'<tbody id=timebuy> <tr><td height=27 align=center>现货铂金</td><td height=18 align=center>286.77</td><td height=18 align=center class=fontok>-0.24</td><td height=18 align=center>-0.08%</td><td height=18 align=center>287.58</td><td height=18 align=center>286.29</td></tr><tr><td height=27 align=center>现货钯金</td><td height=18 align=center>146.34</td><td height=18 align=center class=fontok>-0.44</td><td height=18 align=center>-0.30%</td><td height=18 align=center>147.63</td><td height=18 align=center>146.28</td></tr><tr><td height=27 align=center>现货白银</td><td height=18 align=center>4036</td><td height=18 align=center class=fontok>+25</td><td height=18 align=center>+0.62%</td><td height=18 align=center>4074</td><td height=18 align=center>4031</td></tr></tbody>'},{

这个是一个网页的行情没有换行,我想把里面带颜色的内容给提取出来, 希望提取出来,然后存储备用进行分析,但是自己刚刚开始学习正则表达式,搞了一晚上,也没有搞明白,我参考网站上的例子,做了一个正则,但是怎么也搞不出来,求助一下大家
我希望就是把 带颜色的部分提取出来,然后存储以备程序使用。
当然绿色部分的内容如果能够单独提取出来更好。如果不成,不考虑也成

下面是我模仿写的正则表达式,我是把所有的内容全部写上提取的,如下
<tr><td height=27 align=center>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td><td height=18 align=center class=fontok>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td></tr><tr><td height=27 align=center>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td><td height=18 align=center class=fontok>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td></tr><tr><td height=27 align=center>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td><td height=18 align=center class=fontok>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td><td height=18 align=center>([\d\D]*)</td></tr>
能够提取处理内容,但是感觉相当麻烦,想求助一下,有没有好的办法,效率速度更高的呢?
谢谢大家了,另外自己也没有处理过相应的东东,想问一下,提取出来的汉字还需要有什么注意事项么?



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-7-24 11:27:20 | 显示全部楼层
  1. <tr><td height=27 align=center>([\s\S]*?)</td><td height=18 align=center>([\s\S]*?)</td><td height=18 align=center class=fontok>([\s\S]*?)</td><td height=18 align=center>([\s\S]*?)</td><td height=18 align=center>([\s\S]*?)</td><td height=18 align=center>([\s\S]*?)</td></tr>
复制代码
这样就行了
Group[1]是第一个,依次类推
就行了
参考以下代码
[code=csharp] foreach (Match item in Regex.Matches("你的Html", "正则"))
            {
                string n1 = item.Groups[1].Value;
                string n2 = item.Groups[2].Value;
                string n3 = item.Groups[3].Value;
                string n4 = item.Groups[4].Value;
                string n5 = item.Groups[5].Value;
                string n6 = item.Groups[6].Value;
            }[/code]
 楼主| 发表于 2013-7-24 16:20:10 | 显示全部楼层
s  和 d 在正则表达式里面有区别么?另外string 能否进行算数运算呢?
发表于 2013-7-24 16:42:03 | 显示全部楼层
建议楼主先看看这篇帖子正则表达式30分钟入门教程
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 05:14

© 2014-2021

快速回复 返回顶部 返回列表