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中常用的正则表达式函数的更多相关文章

  1. Python常用模块中常用内置函数的具体介绍

    Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...

  2. iOS开发中常用的数学函数

    iOS开发中常用的数学函数 /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(,)); //result 9 NSLog(,)); //result 27 //开平方 ...

  3. 实际项目开发过程中常用C语言函数的9大用法

    C语言是当中最广泛的计算机编程语言,是所有计算机编程语言的祖先,其他计算机编程语言包括当前流行的Java语言,都是用C语言实现的,C语言是编程效率最高的计算机语言,既能完成上层应用开发,也能完成底层硬 ...

  4. Sql 中常用时间处理函数

    1.Sql 中常用时间处理函数  GETDATE()  返回当前的日期和时间 DATEPART()  返回日期/时间的单独部分 DATEADD()   返回日期中添加或减去指定的时间间隔 DATEDI ...

  5. PHP中常用的正则表达式由哪些元素构成?

    在程序开发中,我们常常要用到正则表达式,对于新手来说,很多时候知道正则表达式是怎么回事,但当真正需要使用的时候,却不知该用什么函数,具体的修饰符也比较混乱.下面小编就为大家整理了一些php正则表达式中 ...

  6. JavaScript 中常用的 正则表达式

    这编文章我来整理了一些在 javascript 中常用的正则式希望能给大家带来一些开发的灵感 //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{ ...

  7. 收集JavaScript中常用的方法函数

    本文中,收集了一些比较常用的Javascript函数,希望对学习JS的朋友们有所帮助. 1. 字符串长度截取 function cutstr(str, len) { var temp, icount ...

  8. js中常用的正则表达式

    我一般对正则的使用方式如下,该方法会返回一个boolean值,然后对这个返回值来进行判断 // 判断是否是整数 function isInt(num) { var reg = new RegExp(& ...

  9. 【Oracle】Oracle中常用的系统函数

    Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能.函数可以接受零个或者多个输入参数,并返回一个输出结果.在Oracle还可以自定义函数,关于更多信息可以查 ...

随机推荐

  1. mac java jdk 安装删除

    安装: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载安装双击安装 卸载: ...

  2. P2885 [USACO07NOV]电话线Telephone Wire

    P2885 [USACO07NOV]电话线Telephone Wire 最近,Farmer John的奶牛们越来越不满于牛棚里一塌糊涂的电话服务于是,她们要求FJ把那些老旧的电话线换成性能更好的新电话 ...

  3. 面向对象【day07】:面向对象引子(一)

    本节内容 概述 面向对象引子 面向过程介绍 一.概述 很对人都不理解编程中的面向对象的概念,那我们先来说说面向对象的引子,由这个引子带领我们更好的理解面向对象的概念. 二.面向对象引子 你现在是一家游 ...

  4. javascript 字符串的连接和截取

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Spark记录-Spark-Shell客户端操作读取Hive数据

    1.拷贝hive-site.xml到spark/conf下,拷贝mysql-connector-java-xxx-bin.jar到hive/lib下 2.开启hive元数据服务:hive  --ser ...

  6. Jupyter 魔术命令(magic commands)

    自动重新加载更改的模块 命令参数如下所示: %autoreload: 自动重载%aimport排除的模块之外的所有模块. %autoreload 0: 禁用自动重载 %autoreload 1: 自动 ...

  7. vue实现一个简单的选项卡

    用vue来实现一个小的选项卡切换,比之前要简单.方便很多. <!DOCTYPE html> <html lang="en"> <head> &l ...

  8. 17. Spring Boot 配置嵌入式Servlet容器

    一.如何定制和修改Servlet容器的相关配置 1.配置文件(ServerProperties): 优先级最高 server.port=8081 server.context‐path=/crud s ...

  9. 汕头市队赛 SRM 07 D 天才麻将少女kpm

    这道题放了很久还是回来补了 D 天才麻将少女KPM SRM 07 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂.     KPM上周叒打了n场麻将,但她这次又没控分,而且 ...

  10. TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'

    这个问题说的很清楚,就是类型不对,需要转化类型,首先讲一下这个问题是在使用pandas的resample函数激发的,官方文档解释的较为清楚,如下: Convenience method for fre ...