php的正则表达式函数,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 '

';

print_r($val);

echo '

';

}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 '


';

show($str1);

echo '
';

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 '


';

show($str3);

echo '
';

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 '


';

show($str5);

echo '
';

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 '


';

$str = "qewr{asdf}[123]";

$str =preg_quote($str);

print_r($str);

/*

qewr\{asdf\}\[123\]

*/简单总结通性:

preg_ 开头

除preg_quote函数以外,第一个参数都是正则表达式

preg_match 表单验证等

preg_replace 非法词语过滤等

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还可以自定义函数,关于更多信息可以查 ...

随机推荐

&period;&sol;configure&comma;make&comma;make install的作用

这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC ...

TortoiseGit 连接Git服务器不用每次输入用户名和密码的方法

每次git push 都要输入用户名和密码. 虽然安全,但在自己电脑上每次都输有些麻烦,如何记住用户名和密码呢? 试了很多方法,找到这个最简单,亲测可行. 当你配置好git后,在C盘C:\Users\ ...

Cron运行原理

from:http://blog.chinaunix.net/uid-20682147-id-4977039.html 目录 目录 1 1. 前言 1 2. 示例 1 3. 工作过程 2 4. 一个诡 ...

Z-Stack协议中几个重要概念的理解

1. 原语     ZigBee设备在工作时,各种不同的任务在不同的层次上执行,通过层的服务,完成所要执行的任务.每一层的服务主要完成两种功能:根据它的下层服务要求,为上层提供相应的服务:另一咱是根据 ...

SQL Server带游标的SQL

DECLARE test_cursor CURSOR FOR SELECT ID FROM dbo.T_BD_Restaurant WHERE id <> '0AAB2E55-79F8-4 ...

想要薪资20-30K,Python程序员认真敲代码就够了!

在这个年代,互联网的飞速壮大大家有目共睹,除了表露出的公共受益,其中计算机编程者也是做出了巨大的贡献,即使外国编程语言仍旧属于领导者,但是在互联网的壮大下,我们这是"地球村",国内 ...

Pandas系列(十六)- 你需要学会的骚操作

pandas有一种功能非常强大的方法,它就是accessor,可以将它理解为一种属性接口,通过它可以获得额外的方法.其实这样说还是很笼统,下面我们通过代码和实例来理解一下. pd.Series._ac ...

SoapUI测试WebService接口

Getting Started Getting started with some ad-hoc testing of a SOAP service is straight forward; se ...

centos查看系统版本信息

1.查看版本文件名称 ll /etc/*centos* 2.显示系统版本号 cat /etc/centos-release

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

硬件知识:固态硬盘4K对齐知识介绍

目录 1、什么是4K对齐呢&#xff1f; 2、怎么查看硬盘是否4K对齐呢&#xff1f; 3、怎么4K对齐呢&#xff1f; 现在大家基本都有一个固态硬盘&#xff0c;而在固态硬盘分区中4K对齐是非常重要的。 1、什么是4K对齐呢&#xff1f; “4K对齐”就是符合“4K扇区”定义格式化过的硬…

【spring cloud】注解@SpringCloudApplication和@SpringBootApplication的区别

SpringCloudApplication注解 注解SpringCloudApplication包括&#xff1a;SpringBootApplication、EnableDiscoveryClient、EnableCircuitBreaker&#xff0c;分别是SpringBoot注解、注册服务中心Eureka注解、断路器注解。对于SpringCloud来说&#xff0c;这是每一微服务必须应…

网络知识:路由器常见故障分析及处理方法

目录 1.路由器的部分功能无法实现 2.网络频繁掉线 3.无法浏览网页 4.某些应用无法使用 5&#xff0e;网络带宽达不到合同带宽或相差甚远 6.局域网内存在多个路由器&#xff0c;因人为原因出现二级路由 对当前的大多数网络来说&#xff0c;无论是实现网络互连还是访问Internet&a…

matlab找不到函数系统函数,求助,Matlab找不到ztrans函数

只把这个函数给你吧,你自己保存下:function F ztrans(varargin)%ZTRANS Z-transform.% F ZTRANS(f) is the Z-transform of the scalar sym f with default% independent variable n. The default return is a function of z:% f f(n) > F F(z). The Z-transfor…

硬件技巧:如何隐设置的你的电脑U盘不可见

有时候电脑里面有重要内容&#xff0c;在不联网的情况下&#xff0c;还需要禁用U盘&#xff0c;下面介绍禁用U盘的方法&#xff0c;原创文章&#xff0c;转载注明出处即可。 第一步&#xff0c;首先在电脑上点击开始按钮&#xff0c;或者直接按下快捷键组合"WinR"&am…

XidianOJ 1035 数独 1053 正数负数 1042 另一个简单的游戏

三道水题。。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int n; int main(){while (scanf("%d",&n) ! EOF){if (n > 0){printf("yes\n");}else if (n < 0)…

Django 基本命令

1. 新建一个 django projectdjango-admin.py startproject project-name一个 project 为一个项目&#xff0c;project-name 项目名称&#xff0c;改成你自己的&#xff0c;要符合Python 的变量命名规则&#xff08;以下划线或字母开头&#xff09;2. 新建 apppython manage.py …

前端知识:如何创建自己的Iconfont图标库

在日常的开发过程中&#xff0c;前端页面经常会引用一些图标&#xff0c;iconfont图标库是前端开发者非常友好的在线字体图标库。大家可以根据平常所涉及的项目&#xff0c;收藏自己需要的图标库&#xff0c;方便在后续的项目中使用&#xff0c;今天小编给大家介绍如何通过icon…

mysql 二次 聚合,MySql-聚合查询

聚合查询Chloe 可以像写 sql 一样实现聚合查询。IQuery q context.Query();q.Select(a > Sql.Count()).First();/** SELECT COUNT(1) AS C FROM Users AS Users LIMIT 0,1*//* 支持多个聚合函数 */q.Select(a > new{Count Sql.Count(),LongCount Sql.LongCount(),Sum …

硬件:固态硬盘SSD的基础知识及安装注意事项

固态硬盘就是用固态电子存储芯片阵列而制成的硬盘&#xff0c;相对于机械硬盘&#xff0c;固态硬盘的读写速度更快&#xff0c;但是固态硬盘的缺点是寿命不如机械硬盘。 固态硬盘有写入寿命&#xff0c;平均起来约为3000次P/E&#xff0c;1P/E为硬盘存储上限&#xff0c;相当于…

C# Redis实战(二)

二、Redis服务 在C# Redis实战(一)中我将所有文件拷贝到了D盘redis文件夹下&#xff0c;其中redis-server.exe即为其服务端程序&#xff0c;双击即开始运行&#xff0c;如图可以将此服务设置为windows系统服务&#xff0c;下载Redis服务安装软件&#xff0c;安装即可。安装完成…

matlab仿真超声波测距,超声波测距仪制作-Arduino中文社区 - Powered by Discuz!

本帖最后由 xiebb5688 于 2017-12-4 09:06 编辑虽然学的是机械&#xff0c;可也接触过C语言&#xff0c;MATLAB等程序&#xff0c;每次编程的时候&#xff0c;能够把BUG一个个解决掉&#xff0c;会带来不小的成就感。于是感觉到自己骨子还是挺喜欢代码的。于是也不知何时了解了…

Mac版本Navicat下载

提供navicat安装包 链接&#xff1a;https://pan.baidu.com/s/1mQddUOuaxovVkhNOT9vUJw 密码&#xff1a;tted

电脑技巧:键盘上的这几个键,不常用,但有必要了解一下

目录 键盘上三个特殊的键 Print Screen&#xff08;或 Prt Scn&#xff09; Scroll Lock&#xff08;或 Scr Lk&#xff09; Pause/Break ​​​​​​​ 键盘上三个特殊的键 通过前几期的文章&#xff0c;我们已经讨论了几乎所有可能要用到的键。但为了真正彻底地了解键盘&…

ip访问php $_files空,PHP中表单没有问题但$_FILES为空怎么办?

PHP中表单没有问题&#xff0c;但“$_FILES”为空的解决方法&#xff1a;首先在form中加代码为“enctype"multipart/form-data”&#xff1b;然后开启“file_uploads”并设置“file_uploadson”即可。PHP中表单没有问题但是$_FILES为空的解决办法在文件上传中$_FILES接收不…

一张图看透微信公众号、企业号、小程序

对于微信小程序&#xff0c;推荐了解关键词&#xff1a;“progress web app” 我觉得微信小程序跟原生app之间也没有什么好争议的&#xff0c;就如微信和手机qq一样&#xff0c;有了微信&#xff0c;手机QQ也没有死掉&#xff0c;微信小程序适合小型应用&#xff0c;或者说能用…

lamba List 转 Map

Java 8 以前的写法&#xff1a; Map<Long, User> userMap new HashMap<Long, User>(); for (User user : users) {userMap.put(user.getId(), user); } Java 8 写法&#xff1a; Map<Long, User> userMap users.stream().collect(Collectors.toMap(User:…

电脑技巧:电脑识别不出字,一些汉字都变成框框了

目录 一、区域语言设定 二、系统内部编码 三、字体库被破坏 四、Office工具修复 五、美化主题的问题 六、中毒&#xff0c;杀毒。 电脑识别不出字&#xff0c;一些汉字都变成框框了&#xff0c;该怎么办&#xff1f; 一、区域语言设定 控制面板——区域和语言选项——选项和高级…