/**

* @desc:正则匹配类

* @author [Lee] ]>

* @method

* 1、geturl 获取所有超链接

* 2、getimg 获取所有图片

* 3、getaudio 获取所有音频文件

* 4、getvideo 获取所有视频文件

* 5、getparagraph 获取所有段落

* 6、getuser 获取自定义内容 preg 自定义正则,如:/

(.*)

/Ui

*/

class match{

private $content = '';

/*

@desc:构造方法,初始化待匹配文本

*/

public function __construct($content){

$this->content = $content;

}

/*

@desc:获取所有超链接

@return:所有匹配的超链接

*/

public function geturl(){

$content = $this->content;

$preg = '/\'\"\ ]*).*?>/i';

$bool = preg_match_all($preg,$content,$res);

$urls = array();

if($bool){

$urls = $res[1];

}

return array_unique($urls);

}

/*

@desc:获取所有图片

@return:所有匹配的图片

*/

public function getimg(){

$content = $this->content;

$preg="/(src)=(\\\?)([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png|svg))\\2\\3/i";

$bool = preg_match_all($preg,$content,$res);

$imgs = array();

if($bool){

$imgs = $res[4];

}

return array_unique($imgs);

}

/*

@desc:获取所有音频文件

@return:所有匹配的音频文件

*/

public function getaudio(){

$content = $this->content;

$preg="/(src)=(\\\?)([\"|']?)([^ \"'>]+\.(mp3|wav|wma|ogg|ape|acc))\\2\\3/i";

$bool = preg_match_all($preg,$content,$res);

$audios = array();

if($bool){

$audios = $res[4];

}

return array_unique($audios);

}

/*

@desc:获取所有视频文件

@return:所有匹配的视频文件

*/

public function getvideo(){

$content = $this->content;

$preg="/(src)=(\\\?)([\"|']?)([^ \"'>]+\.(swf|flv|mp4|rmvb|avi|mpeg|ra|ram|mov|wmv)((\?[^ \"'>]+)?))\\2\\3/i";

$bool = preg_match_all($preg,$content,$res);

$videos = array();

if($bool){

$videos = $res[4];

}

return array_unique($videos);

}

/*

@desc:获取所有段落文本

@return:所有匹配的段落文本

*/

public function getparagraph(){

$content = $this->content;

$preg="/

(.*)/Ui";

$bool = preg_match_all($preg,$content,$res);

$paragraphs = array();

if($bool){

$paragraphs = $res[1];

}

return array_unique($paragraphs);

}

/*

@desc:获取所有自定义内容

@return:所有匹配的自定义内容

*/

public function getuser($preg){

$content = $this->content;

$bool = preg_match_all($preg,$content,$res);

$users = array();

if($bool){

$users = $res[1];

}

return array_unique($users);

}

}

php 匹配正则,php正则匹配类相关推荐

  1. java 正则 惰性匹配_js正则表达式惰性匹配和贪婪匹配用法分析

    本文实例讲述了js正则表达式惰性匹配和贪婪匹配用法.分享给大家供大家参考,具体如下: 在讲贪婪模式和惰性模式之前,先回顾一下JS正则基础: 写法基础: ①不需要双引号,直接用//包含 => /w ...

  2. 10、正则表达式 (笔试题、语法规则、正则对象方法、正则实例属性、支持正则表达式的String对象的方法、贪婪匹配与非贪婪匹配)

    正则表达式 目录 10.1 语法规则 10.1.1 创建方法 1.直接量 2.构造方法RegExp() 10.1.2 三个属性i,g,m 10.1.3 方括号 10.1.4 元字符 10.1.5 量词 ...

  3. 常用的数字正则(严格匹配)

    常用的数字正则(严格匹配) 正则  含义 ^[1-9]\d*$  匹配正整数 ^-[1-9]\d*$ 匹配负整数 ^-?[1-9]\d*$    匹配整数 ^[1-9]\d*|0$    匹配非负整数 ...

  4. python表达匹配_python 中文正则表达匹配

    需求:由于某个n年前的工具的错误,在复制一批文件的时候产生了大量的"复件xxxxxxx""复件(2)XXXXX"等类似文件,由于目录结构深,文件多,预计在500 ...

  5. [原]Java 正则 多子串 匹配 替换

    正则表达式异常强大,一直理解不深,用的也不深,这次项目中尝试,体会到了它的强大之处.字符串查找,匹配,替换,正则无不能做,特别是灵活的运用子串匹配得到的变量值$1,$2,再进行二次处理能够达到很巧妙的 ...

  6. 匹配正则_Day233:正则表达式匹配方法 match()

    match()语法 match本身是JavaScript语言中字符串对象的一个方法,该方法的签名是 match([string] | [RegExp]) 它的参数既可以是一个字符串,也可以是一个正则表 ...

  7. 匹配正则_程序员入门基础:python正则表达式贪婪匹配和非贪婪匹配

    此文为python正则表达式的高阶入门,正则基础入门请参考程序员入门基础:python的正则表达式. 一.贪婪匹配和非贪婪匹配 举例说明概念: print('非贪婪匹配',re.search('el+ ...

  8. 正则双重过滤 /// splitKey1 第一个正则式匹配 /// splitKey2 匹配结果中再次匹配进行替...

    /// <summary>/// 正则双重过滤/// splitKey1 第一个正则式匹配/// splitKey2 匹配结果中再次匹配进行替换/// </summary>// ...

  9. java正则出现次数_正则表达式(二)—匹配次数的正则

    正则表达式 匹配次数的正则 在前一篇文章中,我们总结了和位置相关的正则,在这篇文章中,我们将继续学习正则表达式其它的内容. 假如现在给你一个regular_1.txt文件,让你找出含有连续2个a的行, ...

  10. php正则匹配是否为url地址,php正则匹配网址-正则php-php正则匹配url地址

    php正则表达式 正则匹配网址是否带http:// https:// if(preg_match("/\x20*https?\:\/\/.*/i","",$m) ...

最新文章

  1. 点、线、面生成mvt(MapBox Vector Tile)格式的瓦片总结
  2. mini mysql_mini
  3. python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
  4. php数组的奇数_用php输出一个数组中的偶数或奇数的方法
  5. pytorch CUDA driver version is insufficient for CUDA runtime version解决
  6. day16——函数式编程和内置函数
  7. Swift vs. Objective-C:未来看好Swift的十个理由
  8. python参数是什么_最全Python快速入门教程,满满都是干货
  9. jupyter(Anaconda)打不开浏览器
  10. opengl大作业c语言,openGL-计算机图形大作业中出现的几个错误及解决
  11. 【Wifi密码破解】安卓手机、电脑如何破解Wifi密码
  12. 小程序开发工具代码保存编译后,程序没变
  13. USB端口在Mac上不起作用?这是修复方法
  14. 【数据获取】1:25万全国基础地理公开数据库(水系、道路、村庄)下载整理
  15. 监控网站与接口宕机,并推送 App 消息提醒的程序
  16. nova evacuate功能分析
  17. 零假设(Null Hypothesis)
  18. 多线程-day-09CAS原理
  19. android apk 永久root,Android 实现永久性开启adb 的root权限
  20. window.frames[iframe].document 在ie可以用,在360、火狐中都不兼容?

热门文章

  1. Zookeeper 的 ZAB 协议
  2. 腾讯 AI Lab 正式开源PocketFlow自动化深度学习模型压缩与加速框架
  3. 如何节省1T图片带宽?解密极致图像压缩!
  4. PMP之项目相关方管理
  5. FFMPEG学习(一)---【命令行】采集视频和音频
  6. golang 数组 切片 下标范围
  7. vue下的props,data
  8. leetcode 91. Decode Ways | 91. 解码方法(动态规划)
  9. C# 实验三 判断一个字符、判断三角形、千名学生、a+aa+aaa+aaaa、求数列相加、约瑟夫环
  10. dart系列之:和null说再见,null使用真实实践