php中常用的正则表达式函数
php中常用的正则表达式函数
* preg_match()
* preg_match_all()
* preg_replace()
* preg_filter()
* preg_grep()
* preg_split()
* preg_quote() 接下来对比讲解: 讲解中 $pattern 通常表示正则表达式
$subject 通常表示目标处理数据
定义一个方法 方便查看数据类型:
function show($val = null){
if(empty($val)){
//打印空
echo 'null';
}elseif(is_array($val) || is_object($val)){
//打印数组或者对象
echo '<pre>';
print_r($val);
echo '</pre>';
}else{
//打印string int float
echo $val;
}
}
preg_match()与preg_match_all()
/*方法简单说明*/
preg_match($pattern,$subject,[array &$matches]) //匹配一次 第三个参数可选 匹配结果放置matches数组
preg_match_all($pattern,$subject,array &matches) //匹配多次 三参必选 匹配结果放置matches数组 $pattern = '/[0-9]/';
$subject='b5fg4sgf3sd2f1g';
$m1 =preg_match($pattern,$subject,$arr1); show($m1);
show($arr1);
/*
1
Array
(
[0] => 5
)
*/ $m2 =preg_match_all($pattern,$subject,$arr2); show($m2);
show($arr2); /*
5
Array
(
[0] => Array
(
[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
)
)
*/ 2.preg_replace()与preg_filter()
/*方法简单说明*/
* preg_replace与preg_filter
* preg_replace($pattern,$replacement,$subject)
* //正则替换函数被替换对象是数组 返回全部
//正则替换函数 被替换对象是数组 仅返回被替换元素
* 联想:str_repalce()
* echo str_replace("world","Shanghai","Hello world!");
* //得到Hello Shanghai!
//第一测 字符串中替换字符串 结论:此处preg_replace()与preg_filter()无区别
$pattern = '/[0-9]/';
$subject='b65fg4sgf3sd2f1g';
$replacement = '_';
$str1 = preg_replace($pattern,$replacement,$subject);
$str2 = preg_filter($pattern,$replacement,$subject);
echo '<hr>';
show($str1);
echo '<br>';
show($str2);
/*
b__fg_sgf_sd_f_g
b__fg_sgf_sd_f_g
*/ //第二测 字符串中根据数组正则 替换 结论:此处preg_replace()与preg_filter()无区别
$pattern = array('/[123]/','/[456]/','/[789]/');
$subject='b123fg3456sgf3789f1g';
$replacement = array('天','地','人');
$str3 = preg_replace($pattern,$replacement,$subject);
$str4 = preg_filter($pattern,$replacement,$subject);
echo '<hr>';
show($str3);
echo '<br>';
show($str4);
/*
b天天天fg天地地地sgf天人人人f天g
b天天天fg天地地地sgf天人人人f天g
*/ //第三测 数组中根据数组正则 替换 结论:此处展示preg_repalce()与preg_filter()有区别
$pattern = array('/[123]/','/[456]/','/[789]/');
$subject=array('b','fg3','456','sgf','789','fg');
$replacement = array('天','地','人');
$str5 = preg_replace($pattern,$replacement,$subject);
$str6 = preg_filter($pattern,$replacement,$subject);
echo '<hr>';
show($str5);
echo '<br>';
show($str6);
/*
Array
(
[0] => b
[1] => fg天
[2] => 地地地
[3] => sgf
[4] => 人人人
[5] => fg
) Array
(
[1] => fg天
[2] => 地地地
[4] => 人人人
)
*/
3 . preg_grep($pattern, array $subject) //此处$subject只可以为一维数组 /*函数说明*/
preg_grep($pattern,array $input)//只可以匹配一维数组 返回匹配成功的数组元素
可以理解preg_grep()为阉割版 preg_filter()
只做了匹配 不作替换 $pattern = '/[0-9]/';
$subject=array('b','fg3','456','sgf','789','fg');
$arr = preg_grep($pattern,$subject);
show($arr);
/*
Array
(
[1] => fg3
[2] => 456
[4] => 789
)
*/ 4 . preg_split($pattern,$subject)//一匹配成功为切割点切割字符串成数组
可以理解preg_split()升级版的explode() $pattern = '/[0-9]/';
$subject='bfg3456sgf789fg';
$arr = preg_split($pattern,$subject);
show($arr);
/*
Array
(
[0] => bfg
[1] =>
[2] =>
[3] =>
[4] => sgf
[5] =>
[6] =>
[7] => fg
)
*/
5 . preg_quote($str) 正则运算符转译
/*
* preg_quote($str) 正则运算符转译
* . \ + * ? [ ^ ] $ () {} = ! < > | : -
*
*/
echo '<hr>';
$str = "qewr{asdf}[123]";
$str =preg_quote($str);
print_r($str);
/*
qewr\{asdf\}\[123\]
*/
简单总结通性:
preg_ 开头
除preg_quote函数以外,第一个参数都是正则表达式
preg_match 表单验证等
preg_replace 非法词语过滤等
php中常用的正则表达式函数的更多相关文章
- Python常用模块中常用内置函数的具体介绍
Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...
- iOS开发中常用的数学函数
iOS开发中常用的数学函数 /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(,)); //result 9 NSLog(,)); //result 27 //开平方 ...
- 实际项目开发过程中常用C语言函数的9大用法
C语言是当中最广泛的计算机编程语言,是所有计算机编程语言的祖先,其他计算机编程语言包括当前流行的Java语言,都是用C语言实现的,C语言是编程效率最高的计算机语言,既能完成上层应用开发,也能完成底层硬 ...
- Sql 中常用时间处理函数
1.Sql 中常用时间处理函数 GETDATE() 返回当前的日期和时间 DATEPART() 返回日期/时间的单独部分 DATEADD() 返回日期中添加或减去指定的时间间隔 DATEDI ...
- PHP中常用的正则表达式由哪些元素构成?
在程序开发中,我们常常要用到正则表达式,对于新手来说,很多时候知道正则表达式是怎么回事,但当真正需要使用的时候,却不知该用什么函数,具体的修饰符也比较混乱.下面小编就为大家整理了一些php正则表达式中 ...
- JavaScript 中常用的 正则表达式
这编文章我来整理了一些在 javascript 中常用的正则式希望能给大家带来一些开发的灵感 //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{ ...
- 收集JavaScript中常用的方法函数
本文中,收集了一些比较常用的Javascript函数,希望对学习JS的朋友们有所帮助. 1. 字符串长度截取 function cutstr(str, len) { var temp, icount ...
- js中常用的正则表达式
我一般对正则的使用方式如下,该方法会返回一个boolean值,然后对这个返回值来进行判断 // 判断是否是整数 function isInt(num) { var reg = new RegExp(& ...
- 【Oracle】Oracle中常用的系统函数
Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能.函数可以接受零个或者多个输入参数,并返回一个输出结果.在Oracle还可以自定义函数,关于更多信息可以查 ...
随机推荐
- teleport使用说明
teleport使用说明 浏览器下载网页:只能浏览主页和少数网页,其它不能浏览,容量几百kb teleport下载项目一能完全离线看网页,7328多文件 9个JPG文件,大小134M te ...
- Java中 break continue return 的区别
1.break break :跳出当前循环:但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环: ; i < ; i++) { ) { break; // 在执行 ...
- bzoj千题计划298:bzoj3997: [TJOI2015]组合数学
http://www.lydsy.com/JudgeOnline/problem.php?id=3997 最小链覆盖=最长反链长度 所以题目等价于寻找一条从右上角到左下角的最长路 #include&l ...
- C语言上机复习(一)文件操作
C语言—文件操作 1.1 fgetc() + fputc(): 以 字符 形式存取数据定义文件指针 #define _CRT_SECURE_NO_WARNINGS #include <cstdi ...
- java AOP使用注解@annotation方式实践
java AOP使用配置项来进行注入实践 AOP实际开发工作比较常用,在此使用注解方式加深对面向切面编程的理解 废话不多少,先看下面的实例代码 场景: 1.未满一岁的小孩,在执行方法之前打印:“ ...
- AVL树的JAVA实现及AVL树的旋转算法
1,AVL树又称平衡二叉树,它首先是一颗二叉查找树,但在二叉查找树中,某个结点的左右子树高度之差的绝对值可能会超过1,称之为不平衡.而在平衡二叉树中,任何结点的左右子树高度之差的绝对值会小于等于 1. ...
- mongoDB - 日常操作三
MongoDB 进程控制 进程控制 db.currentOp() # 查看活动进程 db.$cmd.sys.inprog.findOne() # 查看活动进程 与上面一样 opid # 操作进程号 o ...
- js_原生js实现上拉加载更多的功能。
1.人生啊,是我莽撞了啊.这是我公司一个喜欢读书的女孩子的个性签名,喜欢哪些句子,不悲伤,却切切实实的令人喜好. 2.写程序是一件很直接明了的事情,明白了就是明白了,不懂就是不懂,不懂装懂的会让你走很 ...
- IOS中的用户安全
用户安全: 原则:在网络传输过程中,关于用户的密码是不能传递明文的,需要通过加密之后进行传递, 一般采用的加密技术是: (1)md5+盐 (2)hmac+md5 (3)hmac+md5+时间戳 这 ...
- iOS 中的 xml 解析
在ios 中解析xml 的方法有很多种 1.苹果原生 NSXMLParser:SAX方式解析,使用简单 2.第三方框架 libxml2:纯c语言,默认包含在ios sdk中,同时支持DOM 和 SA ...