VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1463|回复: 10

[求助] 为什么正则表达式返回为空字符串?

[复制链接]
44_avatar_middle
online_vip 发表于 2014-11-26 11:01:24 | 显示全部楼层 |阅读模式
20驿站币
我要提取网页里的电话和联系人,访问网页,返回网页右键的代码,从里面提取关键数据。直接从网页里获取到的数据,没有做换行处理,但是在彗星小助手的正则表达式里测试时,能匹配出来,如下图,
为什么正则表达式返回为空字符串? 为什么正则表达式返回为空字符串?
但是在写程序时,不知道为什么就是为空的字符串,我想问下,问题到底出在哪里了???一直都没有找到原因,老大帮忙看下。

CString CJobSearchDlg::GetPhone(CString strSrcCode) //这里返回为空字符串,不知道为什么出在哪里。
{
        CString m_Phone;

        //<p id=\"comphone\">[\s\S]+?电话:([\s\S]+?)\(联系我时请说明是在九博人才网上看到的\)

        CString strRex;
        strRex = "<p id=\\\"comphone\\\">[\\s\\S]+?电话:(.*?)\\(联系我时请说明是在九博人才网上看到的\\)";

        m_Phone = GetTextByRex(strSrcCode, strRex, 1);
       
        return m_Phone;
}

CString CJobSearchDlg::GetTextByRex(CString strSrc/*网页源代码字符串*/, CString strRex/*正则*/, int index/*返回第几个匹配项*/)
{
        CString strText;

        string str = strSrc.GetBuffer();
        strSrc.ReleaseBuffer();

        string m_str = strRex.GetBuffer();
        strRex.ReleaseBuffer();

        cmatch res;
        std::regex_constants::syntax_option_type fl = std::regex_constants::icase;  
        regex rx(m_str, fl);

        if(regex_search(str.c_str(), res, rx))  
        {
                string tmp = res[index];
                strText = tmp.c_str();
        }
        return strText;
}

最佳答案

查看完整内容

>> 电话: 求职者登录或者注册即可查看 传真:0371-86022157 邮箱: 我没有登录,所以看不到电话号码。。。。。。




上一篇:为什么用老大的代码返回的还是乱码?
下一篇:MFC聊天室怎样添加简单的注册和登录功能,求源码参考。。
76_avatar_middle
online_vip 发表于 2014-11-26 11:01:25 | 显示全部楼层
  1. require 'nokogiri'
  2. require 'open-uri'
  3. doc = Nokogiri::HTML(open("http://0395.jjoobb.cn/job/JobInfo.aspx?posid=215843"))

  4. doc.css("#contact p").each {|n| puts n.content}
复制代码


>>
电话:
                                求职者登录或者注册即可查看
                           
                           

                                
                                传真:0371-86022157

                                
                                邮箱:240791697@qq.com




我没有登录,所以看不到电话号码。。。。。。
51_avatar_middle
online_admins 发表于 2014-11-26 11:13:12 | 显示全部楼层
还是楼主的正则表达式写的不正确,可以到一些在线的检测工具上面试试:
http://tool.chinaz.com/regex
44_avatar_middle
ico_lz  楼主| 发表于 2014-11-26 11:37:21 | 显示全部楼层
本帖最后由 hahacker 于 2014-11-26 11:39 编辑
Syc 发表于 2014-11-26 11:13
还是楼主的正则表达式写的不正确,可以到一些在线的检测工具上面试试:
http://tool.chinaz.com/regex


但是用这个工具能匹配出来,有的在线网站能匹配出来,有的却匹配不出来,tr1里的正则貌似使用的是boost里的regrex库。 匹配的标准还不一样???哪到底哪个准呢?我应该用哪个,这真犯难了。。。
76_avatar_middle
online_vip 发表于 2014-11-26 21:04:14 | 显示全部楼层
html/xml是更高阶的语言,正则不好用。。。。。。。
76_avatar_middle
online_vip 发表于 2014-11-26 21:16:55 | 显示全部楼层
其实处理这类问题还是使用脚本语言方便很多。C++显得太笨重。。。。。
44_avatar_middle
ico_lz  楼主| 发表于 2014-11-27 08:34:36 | 显示全部楼层
wccvcyz 发表于 2014-11-26 21:16
其实处理这类问题还是使用脚本语言方便很多。C++显得太笨重。。。。。

具体说下啊!!!
76_avatar_middle
online_vip 发表于 2014-11-27 08:38:51 | 显示全部楼层
hahacker 发表于 2014-11-27 08:34
具体说下啊!!!

我已新开一帖了...
44_avatar_middle
ico_lz  楼主| 发表于 2014-11-27 18:07:49 | 显示全部楼层
wccvcyz 发表于 2014-11-26 21:15
>>
电话:
                                求职者登录或者注册即可查看

处理起来,的确很强悍,我想问下,python和ruby哪个更牛B?功能更强大!
76_avatar_middle
online_vip 发表于 2014-11-30 09:49:03 | 显示全部楼层
hahacker 发表于 2014-11-27 18:07
处理起来,的确很强悍,我想问下,python和ruby哪个更牛B?功能更强大!

其实都差不多。。。。。。。。。。看个人喜好。。。
76_avatar_middle
online_vip 发表于 2014-11-30 09:49:28 | 显示全部楼层
hahacker 发表于 2014-11-27 18:07
处理起来,的确很强悍,我想问下,python和ruby哪个更牛B?功能更强大!

其实都差不多。。。。。。。。。。看个人喜好。。。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-10-17 14:37

Powered by Discuz! X3.4

© 2009-2019 cctry.com

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