免费注册 查看新帖 |

Chinaunix

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

求~正则表达式如何匹配网页里的文本段落 ! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-30 11:33 |只看该作者 |倒序浏览
本帖最后由 kitsilence 于 2011-03-30 11:37 编辑

如题,我们知道网页包含很多内容,标签和正文...
  1. </TD></TR></TBODY></TABLE></STRONG></P>
  2. <P>  现如今,多给孩子选择课外辅导成为风气,除了正常课堂再上一两门课外课的现象再普通不过。很多家长认为紧凑安排辅导课能更好帮助孩子,因为这样可以为孩子提供一个长时间的英语学习环境,总能让学习时间的量变产生考试成绩的质变。但是这样的想法是万万不可取的。采访中,王老师提到孩子不是机器,也是独立的个体,家长应该充分尊重其对知识学习的需求和节奏特点,课外辅导的时间累积绝对不能直接等同于成绩的提高,一旦造成孩子对英语辅导的逆反情绪,会带来更加麻烦的后果。</P>
复制代码
,上面只是示例,正文的内容可能是外文。假设一张网页的全部内容已经得到为 $content,
现在要判断$content里面是不是有一段或者更多文本段落(假设是中文),请问这个正则表达式应该怎么写

论坛徽章:
0
2 [报告]
发表于 2011-03-31 13:32 |只看该作者
怎么木有人围观一下下呢,是我表述的不清楚还是什么啊

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
3 [报告]
发表于 2011-03-31 13:42 |只看该作者
什么叫文本段落? <p> ?

论坛徽章:
0
4 [报告]
发表于 2011-03-31 13:43 |只看该作者
m{<P>.*?</P>}
应该可以吧

论坛徽章:
0
5 [报告]
发表于 2011-03-31 15:19 |只看该作者
本帖最后由 kitsilence 于 2011-03-31 15:20 编辑

回复 3# zhlong8


    (⊙o⊙)…~ 看来真是我表述的不清楚!我把实际需求告诉你好了。我写爬虫根据url去抓取某些网页,

    当然有url就意味我能得到该url对应网页的内容是吧,那不能说一拿到内容我就下载到本地,我得判断

    这个内容里边是不是包含了我想要的东西,我想要的是包含了中文文章的网页,就是上边说的文本段落

    ,你明白我的需求了吧! 你说的用 <p>.*</p>这个能匹配我贴上的例子而已,但不是所有网页里对

     文章的排版都这样不是吗?

论坛徽章:
0
6 [报告]
发表于 2011-03-31 15:24 |只看该作者
回复 4# xfoucs


    我想了又想,我最核心本质的问题可以理解为,怎么用正则式判断网页里是不是包含一篇或者一篇以上的中文文章

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
7 [报告]
发表于 2011-03-31 15:56 |只看该作者
就是让你给“中文文章”这个下个定义,目前计算机还没先进到能理解这么复杂概念的程度啊

论坛徽章:
0
8 [报告]
发表于 2011-04-01 00:23 |只看该作者
回复 7# zhlong8


  呵呵~ 是的!不过看来我还是没有说的更清楚些,我的意思是当我得到一个了一个网页的内容,例如我用
  1. $ua = LWP::UserAgent->new();
  2. $content = $ua->get("www.google.com.hk");
  3. if($content =~ m{(\p{Han}+)}){
  4. ... $1...
  5. }
复制代码
这个时候就已经能匹配一句中文了吧,那如果网页里有连续的一段中文,我应该怎么匹配完这段中文呢

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
9 [报告]
发表于 2011-04-01 09:45 |只看该作者
回复  zhlong8


  呵呵~ 是的!不过看来我还是没有说的更清楚些,我的意思是当我得到一个了一个网页的 ...
kitsilence 发表于 2011-04-01 00:23



    首先要根据页面的编码转码,然后用 while (//g) {} 之类的处理捕获的内容,或者转成树,只判断 <p> 标签里面的内容。当然中文中也可以插有字母、标点等判断标准还是很纠结的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP