切换风格

Sky

20

主题

194

积分

0

精华
用户组

易积分
577
如意币
0
热心
99
好评
2

热心会员

正则匹配表达式详解[复制链接]
发表于 2018-6-4 00:57:03 | 显示全部楼层 |阅读模式
本帖最后由 admin_eeras 于 2018-6-4 01:06 编辑

因为这个是在我博客首发的,可能有排版问题,请复制下面的地址到源站。
http://blog.eeras.cn/2018/06/02/%E6%AD%A3%E5%88%99%E5%8C%B9%E9%85%8D%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%AF%A6%E8%A7%A3/
这几天在群里讨论正则的问题,我也看了下大家写的表达式,其实正则的表达式不需要写那么长的正则匹配表达式详解 作者:admin_eeras 正则匹配表达式用起来还是很好用的,在E4A中取大量文本数据时速度很快,而如果单纯取指定文本有时候很卡,所以推荐使用正则匹配表达式详解 作者:admin_eeras
关于正则匹配表达式
正则表达式,又称规则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
——百度百科
所需工具
精易编程助手查看详情
http://blog.eeras.cn/2018/06/02/%E5%88%86%E4%BA%AB%E4%B8%80%E4%B8%AA%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/
创建正则匹配表达式
创建正则匹配表达式之前要明白表达式怎么写,我们直接实战。
我们这次的目标是取出爱奇艺导航的列表上片名、封面。网页及地址如图所示:
正则匹配表达式详解 作者:admin_eeras
地址:http://list.iqiyi.com/www/1/-------------11-1-1-iqiyi--.html
我们使用的是谷歌浏览器,只要右键网页空白区域然后点“查看网页源码”就可以了,其他浏览器自己找一下。进去后按ctrl+f就可以搜索,我们搜索第一个片名(这样能迅速定位片名标签,不然自己找也可以),如图:
正则匹配表达式详解 作者:admin_eeras
这下片名标签和图片地址都明显的写出来了。我们接下来打开正则调试,用精易编程助手。
将源码放进原文本,直接复制就行,效果如图:
正则匹配表达式详解 作者:admin_eeras
接下来我们观察源码,发现源码里每个视频项目都是写在<li>标签里的,我们复制第一个闭合li标签,内容如下:
  • <li>
  •                     <div class="site-piclist_pic">
  •                         <a                     
  •                                                                      data-qidanadd-albumid="1077852700"
  •                 data-qidanadd-episode="0"  data-qidanadd-channelid="4" data-qidanadd-tvid="1077852700" data-qidanadd-vip="0" data-widget-qidanadd="qidanadd"
  •      data-searchpingback-elem="link"
  •                                                   data-searchpingback-param="page=1&target=cee83f6437bb351fcfc747e7d46a0f31&ptype=1-1&site=iqiyi&pos=1" data-qipuid="1077852700" alt="熊出没·变形记" title="熊出没·变形记"
  •                                                                                                         href="http://www.iqiyi.com/v_19rr0mx4z4.html#vfrm=2-4-0-1"
  •                                                                                                                                                           class="site-piclist_pic_link"
  •                                                   target="_blank">
  •                             <img width="180" height="236" rseat="dsjp7" alt="熊出没·变形记"
  •                                  title="熊出没·变形记"             src = "//pic8.qiyipic.com/image/20180529/ee/bb/v_116365609_m_601_180_236.jpg"
  •     />
  •                            
  •                            
  •                                     <p class="viedo_lt " data-search-pay="ico">
  •                 <span class="icon-member-box"><img src="//pic0.qiyipic.com/common/20171106/ac/1b/vip_100000_v_601_0_20.png" alt="正则匹配表达式详解"></span></p>
  •                         
  •                             <div class="wrapper-listTitle">
  •                                 <div class="mod-listTitle">
  •                                     <p class="viedo_rb">
  •                                         <span class="icon-vInfo">                                            01:30:22
  •                         </span>
  •                                     </p>
  •                                 </div>
  •                             </div>
  •                         </a>
  •                     </div>
  •                     <div class="site-piclist_info">
  •                         <div class="mod-listTitle_left">
  •                                                         <p class="site-piclist_info_title ">
  •                                 <a data-searchpingback-elem="link"
  •                                         data-searchpingback-param="target=cee83f6437bb351fcfc747e7d46a0f31&ptype=1-2&page=1&site=iqiyi&pos=1"
  •                                         rseat="bigTitle" title="熊出没·变形记"  href="http://www.iqiyi.com/v_19rr0mx4z4.html#vfrm=2-4-0-1"                                              target="_blank">熊出没·变形记</a>
  •                             </p>
  •                         </div>
  •                                                                                                     <div class="role_info">
  •                 熊强微观世界欢乐冒险
  •             </div>
  •                                                                                                                 </div>
  •                 </li>
通过观察找到片名最好取的一个地方,就是rseat="dsjp7" alt="熊出没·变形记",这一段里面只要把片名写成(.*?)就可以了,表达式是rseat="dsjp7" alt="(.*?)",片名匹配出来了再匹配图片链接,观察发现这段最好取:       src = "//pic8.qiyipic.com/image/20180529/ee/bb/v_116365609_m_601_180_236.jpg",把链接替换成表达式,是这样的       src = "(.*?)"
温馨提示
注意空格!不然会取出无关的东西!
两段表达式连起来就是
  • rseat="dsjp7" alt="(.*?)"[\s|\S]*?            src = "(.*?)"
温馨提示
[\s|\S]*?可以连接两个表达式,跳过不相干的代码。
为了测试我们是否写对了,把表达式输入调试软件,然后点击“匹配”,效果如下:
正则匹配表达式详解 作者:admin_eeras
将表达式应用于E4A代码
这里会涉及到一个问题,将正则匹配表达式创建在代码用的语句如下:
  • 创建表达式("rseat=\"dsjp7\" alt=\"(.*?)\"[\s|\S]*?            src = \"(.*?)\"",真,真)
温馨提示
表达式里的所有引号都要转义。
因为需要转义,有时候一不小心就会写错,如果遇到复杂的表达式这样写进代码是不妥的,我们推荐将其写进txt然后读取,我们只要创建一个txt文件,命名随便,就叫zhengzhe.txt,里面的内容就是表达式,不需要转义,效果如图:
正则匹配表达式详解 作者:admin_eeras
然后导入E4A资源,如图:
正则匹配表达式详解 作者:admin_eeras
然后可以开始写代码了:
正则匹配表达式详解 作者:admin_eeras
最后编译安装即可,运行效果:
正则匹配表达式详解 作者:admin_eeras
最后,分享这次的源码:
点击下载http://blog.eeras.cn/wp-content/uploads/2018/06/2018-06-03_162402_27.rar






上一篇:如意精准来源类库
下一篇:在线聚合全网直播采集PHP源码
易如意中文编程学习交流论坛有你更精彩~

25

主题

557

积分

0

精华
用户组

易积分
783
如意币
0
热心
5
好评
1

优秀会员热心会员

发表于 2018-6-4 08:56:14 | 显示全部楼层
出一下json的教程啊  

点评

好啊,我拿个小本子记下  详情 回复 发表于 2018-6-7 18:01
每天美滋滋。。。。
回复

使用道具 举报

20

主题

194

积分

0

精华
用户组

易积分
577
如意币
0
热心
99
好评
2

热心会员

发表于 2018-6-7 18:01:17 | 显示全部楼层
朴妮唛 发表于 2018-6-4 08:56
出一下json的教程啊

好啊,我拿个小本子记下正则匹配表达式详解 作者:admin_eeras
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

0

主题

2

积分

0

精华
用户组

易积分
1
如意币
0
热心
0
好评
0
发表于 2018-6-17 20:31:24 | 显示全部楼层
只差一分咯正则匹配表达式详解 作者:lxc240126067
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

2

主题

44

积分

0

精华
用户组

易积分
46
如意币
0
热心
0
好评
0
发表于 2018-6-28 19:08:57 | 显示全部楼层
讲的很好 学习到了
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

QQ|sitemap|手机版|小黑屋|易如意 ( 湘ICP备18003424号 )

GMT+8, 2018-8-17 06:22 , Processed in 0.437500 second(s), 38 queries .

Powered by 易如意 X3.4

© 2001-2018 eruyi.cn

返回顶部