正则表达式中的排除式写法
2016-08-04 14:48
225 查看
正则表达式中的排除式写法
m3u8地址各种各样,我们要遍历出内容里面的小文件的下载地址,以前用正则表达式的url规则即可,但是我们会发现,有下面的至少2中类型的地址,怎么取出地址呢?1 :有这样的:直接包含http的地址
#EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-VERSION:2 #EXTINF:5 http://202.102.74.50/6974400842D4881E1904F52F46/0300080700579F4E14D1C42D9B7D2F61E0BD40-0333-38B0-87D6-AF8240D23940.mp4.ts?ts_start=0&ts_end=5&ts_seg_no=0&ts_keyframe=0 #EXTINF:10 http://202.102.74.50/6974400842D4881E1904F52F46/0300080700579F4E14D1C42D9B7D2F61E0BD40-0333-38B0-87D6-AF8240D23940.mp4.ts?ts_start=5&ts_end=15&ts_seg_no=1&ts_keyframe=0 #EXTINF:10 http://202.102.74.50/6974400842D4881E1904F52F46/0300080700579F4E14D1C42D9B7D2F61E0BD40-0333-38B0-87D6-AF8240D23940.mp4.ts?ts_start=15&ts_end=25&ts_seg_no=2&ts_keyframe=0 #EXTINF:10 http://202.102.74.50/6974400842D4881E1904F52F46/0300080700579F4E14D1C42D9B7D2F61E0BD40-0333-38B0-87D6-AF8240D23940.mp4.ts?ts_start=25&ts_end=35&ts_seg_no=3&ts_keyframe=0 #EXTINF:10 http://202.102.74.50/6974400842D4881E1904F52F46/0300080700579F4E14D1C42D9B7D2F61E0BD40-0333-38B0-87D6-AF8240D23940.mp4.ts?ts_start=35&ts_end=45&ts_seg_no=4&ts_keyframe=0 #EXTINF:10 http://202.102.74.50/6974400842D4881E1904F52F46/0300080700579F4E14D1C42D9B7D2F61E0BD40-0333-38B0-87D6-AF8240D23940.mp4.ts?ts_start=45&ts_end=55&ts_seg_no=5&ts_keyframe=0[/code] 2 :还有这样的:内容不包含http地址的,需要拼接的#EXTM3U #EXT-X-VERSION:3 #EXT-X-DISCONTINUITY #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-TARGETDURATION:17 #EXT-X-PLAYLIST-TYPE:VOD #EXTINF:10.427, n0011l7h8f0_p202_mp4_av.1.0.ts?ugc=0&ga=0&gv=0&start=0&end=10427 #EXTINF:8.217, n0011l7h8f0_p202_mp4_av.1.1.ts?ugc=0&ga=0&gv=0&start=10427&end=18644 #EXTINF:10.093, n0011l7h8f0_p202_mp4_av.1.2.ts?ugc=0&ga=0&gv=0&start=18644&end=28737 #EXTINF:10.344, n0011l7h8f0_p202_mp4_av.1.3.ts?ugc=0&ga=0&gv=0&start=28737&end=39081 #EXTINF:9.634, n0011l7h8f0_p202_mp4_av.1.4.ts?ugc=0&ga=0&gv=0&start=39081&end=48715 #EXTINF:12.179, n0011l7h8f0_p202_mp4_av.1.5.ts?ugc=0&ga=0&gv=0&start=48715&end=60894
所以就不能用匹配url地址的方式进行匹配,否则,第二种无法匹配[a-zA-z]+://[^\s]*
3 :解决方案:
经过一些查询,最后的结论:[\n](/)?[a-zA-z1-9]+[^\s]*
解释:[\n]:表示匹配一行的开头 (/)?:表示匹配到但斜杠"/" [a-zA-z1-9]:表示匹配大小写字母或者数字1-9 +:表示前面的为任意数量 [^\s]*:表示任意数量的任意字符串
这样以上的两种方式的m3u8
在线正则表达式测试:http://tool.oschina.net/regex/
参考
正则表达式30分钟入门教程
正则表达式中的不匹配
不包含字符串abc的正则表达式
相关文章推荐
- 正则表达式java中的写法
- 正则表达式匹配任意字符(包括换行符)的写法
- 正则表达式匹配任意字符(包括换行符)的写法
- 正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度
- 正则表达式匹配邮箱的写法
- 正则表达式的写法
- 正则表达式,多个空格的写法
- 正则表达式必须包含字母.数字和特殊字符写法(转载Do the Right Thing Right.)
- 关于c中结构体的写法
- 原生JS的事件监听写法DEMO
- JS 关于(function( window, undefined ) {})(window)写法的理解
- Vue2 实例中的 data 属性三种写法与作用
- PHP 正则 如何匹配不出现某段字符串的写法!(保留备份)
- 正则表达式
- Android ViewHolder模式简洁封装写法
- Mybatis转义字符(xml转义写法)
- 一个关于SqlServer 中根据概率获取数据的sql 写法
- Area 区域实现post提交数据的js写法
- http与https的写法
- python正则表达式系列(1)——正则元字符