博客列表 >正则表达式”?“的用法

正则表达式”?“的用法

黄健的博客
黄健的博客原创
2019年06月25日 16:49:011374浏览

这是一段优酷的通用视频播放代码

$flag="<iframe height=498 width=510 src='http://player.youku.com/embed/XMzkzODk0MTc1Ng==' frameborder=0 'allowfullscreen'></iframe>";

我现在只想要 'http://player.youku.com/embed/XMzkzODk0MTc1Ng=='  这链接部分

正则匹配表达式:'/iframe .*?[\'\"](.*?)[\'\"]/';

分析一下:

    1 /iframe ;这部分开头部分,是以指定字符开头。

    2 .*? 这是三个其中 "." 是元字符:表示匹配除换行符以外的任意字符 / "*","?"是限定符,限定字符出现的次数。“*”重复0次或更多次; “?”是重复0次或一次。

    3 [\'\"]  :方括号是 字符集合,匹配方括号中的任意一个字符

    4 (.*?)    :圆括号是 分组  匹配圆括号中所有字符串,而且可以在后面指定次数,上面没指定就是匹配一次

    最后以 分号结尾。


如何获取想要的链接部分呢?

    php 有个正则匹配函

            preg_match()常用的有三个参数  

                1 正则表达式;2 被查找的字符串;3 接收结果的变量

            用法: preg_match( '/iframe .*?[\'\"](.*?)[\'\"]/', htmlspecialchars_decode($flag),$match );

                    htmlspecialchars_decode: 存入数据库的html代码,很可能被转换了,需要转回来。

                    匹配到的结果就在 $match 中、   


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议