php 匹配正则,php正则匹配类
/**
* @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正则匹配类相关推荐
- java 正则 惰性匹配_js正则表达式惰性匹配和贪婪匹配用法分析
本文实例讲述了js正则表达式惰性匹配和贪婪匹配用法.分享给大家供大家参考,具体如下: 在讲贪婪模式和惰性模式之前,先回顾一下JS正则基础: 写法基础: ①不需要双引号,直接用//包含 => /w ...
- 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 量词 ...
- 常用的数字正则(严格匹配)
常用的数字正则(严格匹配) 正则 含义 ^[1-9]\d*$ 匹配正整数 ^-[1-9]\d*$ 匹配负整数 ^-?[1-9]\d*$ 匹配整数 ^[1-9]\d*|0$ 匹配非负整数 ...
- python表达匹配_python 中文正则表达匹配
需求:由于某个n年前的工具的错误,在复制一批文件的时候产生了大量的"复件xxxxxxx""复件(2)XXXXX"等类似文件,由于目录结构深,文件多,预计在500 ...
- [原]Java 正则 多子串 匹配 替换
正则表达式异常强大,一直理解不深,用的也不深,这次项目中尝试,体会到了它的强大之处.字符串查找,匹配,替换,正则无不能做,特别是灵活的运用子串匹配得到的变量值$1,$2,再进行二次处理能够达到很巧妙的 ...
- 匹配正则_Day233:正则表达式匹配方法 match()
match()语法 match本身是JavaScript语言中字符串对象的一个方法,该方法的签名是 match([string] | [RegExp]) 它的参数既可以是一个字符串,也可以是一个正则表 ...
- 匹配正则_程序员入门基础:python正则表达式贪婪匹配和非贪婪匹配
此文为python正则表达式的高阶入门,正则基础入门请参考程序员入门基础:python的正则表达式. 一.贪婪匹配和非贪婪匹配 举例说明概念: print('非贪婪匹配',re.search('el+ ...
- 正则双重过滤 /// splitKey1 第一个正则式匹配 /// splitKey2 匹配结果中再次匹配进行替...
/// <summary>/// 正则双重过滤/// splitKey1 第一个正则式匹配/// splitKey2 匹配结果中再次匹配进行替换/// </summary>// ...
- java正则出现次数_正则表达式(二)—匹配次数的正则
正则表达式 匹配次数的正则 在前一篇文章中,我们总结了和位置相关的正则,在这篇文章中,我们将继续学习正则表达式其它的内容. 假如现在给你一个regular_1.txt文件,让你找出含有连续2个a的行, ...
- php正则匹配是否为url地址,php正则匹配网址-正则php-php正则匹配url地址
php正则表达式 正则匹配网址是否带http:// https:// if(preg_match("/\x20*https?\:\/\/.*/i","",$m) ...
最新文章
- 点、线、面生成mvt(MapBox Vector Tile)格式的瓦片总结
- mini mysql_mini
- python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
- php数组的奇数_用php输出一个数组中的偶数或奇数的方法
- pytorch CUDA driver version is insufficient for CUDA runtime version解决
- day16——函数式编程和内置函数
- Swift vs. Objective-C:未来看好Swift的十个理由
- python参数是什么_最全Python快速入门教程,满满都是干货
- jupyter(Anaconda)打不开浏览器
- opengl大作业c语言,openGL-计算机图形大作业中出现的几个错误及解决
- 【Wifi密码破解】安卓手机、电脑如何破解Wifi密码
- 小程序开发工具代码保存编译后,程序没变
- USB端口在Mac上不起作用?这是修复方法
- 【数据获取】1:25万全国基础地理公开数据库(水系、道路、村庄)下载整理
- 监控网站与接口宕机,并推送 App 消息提醒的程序
- nova evacuate功能分析
- 零假设(Null Hypothesis)
- 多线程-day-09CAS原理
- android apk 永久root,Android 实现永久性开启adb 的root权限
- window.frames[iframe].document 在ie可以用,在360、火狐中都不兼容?
热门文章
- Zookeeper 的 ZAB 协议
- 腾讯 AI Lab 正式开源PocketFlow自动化深度学习模型压缩与加速框架
- 如何节省1T图片带宽?解密极致图像压缩!
- PMP之项目相关方管理
- FFMPEG学习(一)---【命令行】采集视频和音频
- golang 数组 切片 下标范围
- vue下的props,data
- leetcode 91. Decode Ways | 91. 解码方法(动态规划)
- C# 实验三 判断一个字符、判断三角形、千名学生、a+aa+aaa+aaaa、求数列相加、约瑟夫环
- dart系列之:和null说再见,null使用真实实践