苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 3761|回复: 7

[其他] 正则表达式可以得出但是在程序里死活不出来

[复制链接]
发表于 2013-8-27 23:53:12 | 显示全部楼层 |阅读模式
本帖最后由 lcylcyll 于 2013-8-28 00:01 编辑
  1. <div class="blockcode"><blockquote>foreach (Match item1 in Regex.Matches(html1, @"<div class=""enter_id""><span>(.*?)</span></div>
  2.            <div class=""enter_sc""><span>(.*?)</span></div>
  3.            <div class=""enter_sjd""><span>(.*?)</span></div>
  4.                    <div class=""enter_xz""><span>(.*?)</span></div>
  5.                   "))
  6.             {
  7.                 string n1 = item1.Groups[1].Value;
  8.                 string n2 = item1.Groups[2].Value;
  9.                 string n3 = item1.Groups[3].Value;
  10.                 string n4 = item1.Groups[4].Value;
  11.                 textBox2.Text = n4;
  12.             }
复制代码
QQ图片20130828000004.jpg
上面这一个是代码 是这样写的对吧  可以看到测试是可以得出来结果的
这一个是要取的文本
<tr class="tf" >
       <td colspan="7">
       <div class="yuan">
           <div class="enter_id"><span>1</span></div>
           <div class="enter_sc"><span>TKTBJ</span></div>
           <div class="enter_sjd"><span>2013-08-27</span></div>
           <div class="enter_xz"><span>0时10分</span></div>
           <input type='hidden' class='state' value='' />
           <div class="enter_caozuo">
            <span class="ticket_del" style="color:#046F8F;cursor:pointer;">删除</span>
          </div>
          <div class="enter_bz"><span></span></div>
          <div class="enter_chk"><input type="checkbox" name="checkbox2" /></div>
       </div>
   
    <!-- 点开始-->
    <div class="dian">
      
       <div class="enterid"><span>1</span></div>
       <div class="entersc"><input type="text" name="entersc" class="input2" value="TKTBJ"/ ></div>
       <div class="entersjd"><input type="text" name="enteryxq" class="Wdate" value="2013-08-27"/ ></div>
       <div class="enterxz"><input type="text" name="enterxz" class="shi" value='0'/ > 时 <input type='text' class='fen' value='10'/> 分</div>
       <div class="entercaozuo">
        <input type="button" class="tj" value="确定"/>   <input type="button" value="取消" class="qx" /></div>   
       <div class="enterbz"><input type="text" name="enterbzhu" class="input5" value=""/></div>
      <div class="enterchk"><input type="checkbox" name="checkbox2" checked/> </div>
      
      
    </div>
    <!-- 点结束-->
    </td>
      </tr>
        
     <tr class="tf" >
       <td colspan="7">
       <div class="yuan">
           <div class="enter_id"><span>2</span></div>
           <div class="enter_sc"><span>JLBDU</span></div>
           <div class="enter_sjd"><span>2013-08-27</span></div>
           <div class="enter_xz"><span>0时10分</span></div>
           <input type='hidden' class='state' value='' />
           <div class="enter_caozuo">
            <span class="ticket_del" style="color:#046F8F;cursor:pointer;">删除</span>
          </div>
          <div class="enter_bz"><span></span></div>
          <div class="enter_chk"><input type="checkbox" name="checkbox2" /></div>
       </div>
   
红色的就是我要取的数据,但是在窗口程序中取不出来,一个值都取不了
对了还有问一下如果要关闭子窗口的话怎么样才能把主窗口关闭,也就是整一个窗口退出



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-8-28 08:31:23 | 显示全部楼层
html1你传入的是什么内容,调试时复制出来,如果是使用Http获取的,你不能在网页里右键获取,要从Http请求中获取,浏览器显示的和你获取的是有差别的。以Http获取的为准。
你传入的Html不可能就这一部分吧。我估计是其他地方影响了

最少你应该把\r\n给加上,你的两个标签之间是有换行的。
 楼主| 发表于 2013-8-28 10:14:38 | 显示全部楼层
站长苏飞 发表于 2013-8-28 08:31
html1你传入的是什么内容,调试时复制出来,如果是使用Http获取的,你不能在网页里右键获取,要从Http请求 ...

我知道,这一个是从Http的请求里面得出来的放在文本框里面然后复制出来的
我只是载了一部分的图

不知要在那里加上、\r\n呢苏老师??

发表于 2013-8-28 10:18:58 | 显示全部楼层
  1. <div class="enter_id"><span>([\s\S]*?)</span></div>\s*?<div class="enter_sc"><span>([\s\S]*?)</span></div>\s*?<div class="enter_sjd"><span>([\s\S]*?)</span></div>\s*?<div class="enter_xz"><span>([\s\S]*?)</span></div>
复制代码
用这个正则试试
 楼主| 发表于 2013-8-28 10:38:15 | 显示全部楼层

谢谢苏老师可以啦,我还想问一下为什么我的正则表达式不能成功呢??
但是在正则的测试工具上是可以成功的呢这一个我不解!

还有我这是两个窗口的,我想关了子窗口的话父窗口也关闭了怎么办呢??

发表于 2013-8-28 10:41:43 | 显示全部楼层
还有我这是两个窗口的,我想关了子窗口的话父窗口也关闭了怎么办呢?? 这个另发帖子说吧

你软件是自己加上换行符号的。
而是在程序里并不会自动加 \s表示是空格,换行的
 楼主| 发表于 2013-8-28 10:51:49 | 显示全部楼层
站长苏飞 发表于 2013-8-28 10:41
还有我这是两个窗口的,我想关了子窗口的话父窗口也关闭了怎么办呢?? 这个另发帖子说吧

你软件是自己 ...

老师是不是这样的话直接把所有的字符连接起来就可以了吗??


老师我的另外的一个问题我再发了一个贴子啦,麻烦您帮解决一下可以吗?

发表于 2013-8-28 11:02:34 | 显示全部楼层
具体的你看看正则里的解释吧。
基本上可以这样理解。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-27 21:19

© 2014-2021

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