PHP中的正则表达式函数preg_

preg_match();     //用于正则表达式的匹配,且只匹配一次

preg_match_all();//用于正则表达式的匹配,会对所有符合规则的都进行匹配

preg_replace();   //正则表达式替换函数

preg_splite();     //正则分割函数


preg_match ( mode, string subject , arraymatches )

其中mode是正则规则,string subject是要匹配的字符串,arraymatches是匹配的结果数组

例子:

 

<?php
$mode='/[89]/';//匹配8或者9
$str="djfkdsjk10903990sjdfdk";
preg_match($mode,$str,$arr);
print_r($arr);
?>


输出:

 

 

Array ( [0] => 9 ) 


preg_match_all ( mode, string subject , arraymatches )

 

该函数和preg_match_all()函数的功能类似,不过该函数会匹配所有符合要求的内容,并将之存放到字符串中。


例子:

 

<?php
$mode='/[89]/';//匹配8或者9
$str="dj33f44k88dsjk10903990sjdfdk";
preg_match_all($mode,$str,$arr);
print_r($arr);
?>

 

输出:

 

Array ( [0] => Array ( [0] => 8 [1] => 8 [2] => 9 [3] => 9 [4] => 9 ) ) 

 

 

preg_replace ( mixed pattern, mixed replacement,mixed subject [, int limit] )

 

通过正则表达式来替换相关内容,类似之前学过的str_replace字符串替换,但功能要强于它。


特点:1、替换内容可以是一个正则也可以是数组正则

          2、替换内容可以通过修正符e来解决替换执行内容

用途:替换一些比较复杂的内容上,也可以用于内容的转换上

例子1——数组正则:

 

<?php
$mode=array('/{title}/','/{author}/','/{url}/');
$re=array("code cloud","qianshou","http://codecloud.duapp.com/");
$str="标题:{title}<br>作者:{author}<br>地址:{url}";
echo "<hr/>";
if($tag=preg_replace($mode,$re,$str)){echo $tag;
}else{echo "替换不成功!";
}
?>


输出:

 

标题:code cloud
作者:qianshou
地址:http://codecloud.duapp.com/


例子2——ubb代码的替换:

 

 

<?php
$str="欢迎来到我的博客:[url]http://blog.csdn.net/qsyzb[/url]";
$re=preg_replace('/\[url\](.*)\[\/url\]/',"<a href=\"\\1\" target=\"new\">\\1</a>",$str);
echo "<hr>".$re."<hr>";
?>


输出:

 

 

 

<hr>欢迎来到我的博客:<a href="http://blog.csdn.net/qsyzb" target="new">http://blog.csdn.net/qsyzb</a><hr>

 

 

preg_split ( string pattern, string subject [, intlimit [, int flags]] )

通过正则表达式来切割相关内容,类似之前学过的explode切割函数,但explode只能按照一种方式切割有局限性。

例子:

 

<?php
$mode='/[,.#]/';
$str='one,two.three#four';
if($tag=preg_split($mode,$str)){print_r($tag);
}else{echo "替换不成功!";
}
?>


输出:

 

 

Array
([0] => one[1] => two[2] => three[3] => four
)


 

 

转载于:https://www.cnblogs.com/suncoolcat/p/3292124.html

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

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

相关文章

vue 离开页面时间_vue页面离开后执行函数的实例

vue页面离开后执行函数的实例如下所示&#xff1a;destroyed: function () {console.log("我已经离开了&#xff01;");this.doSomething();},说明&#xff1a;destroyed是与methods、mounted同层级的以上这篇vue页面离开后执行函数的实例就是小编分享给大家的全部内…

Linux批量删除文件

find [目录名] -name [文件名] -exec rm -rf {} \; 例如&#xff1a;find ./ -name *.raw -exec rm -rf {} \; 其中&#xff0c; -exec 表示后面执行命令 {} 表示查询到的文件名 -rf 为删除命令rm的参数&#xff0c;r 表示递归删除&#xff0c; f表示不需要确认&#xff0c;两个…

c语言选择结构程序设计报告,C语言学习与总结---第四章:选择结构程序设计

选择结构程序设计4.1 if语句4.2 关系运算符和关系表达式4.2.1 关系运算符4.2.2 关系表达式4.3 逻辑运算符和逻辑表达式4.3.1 逻辑运算符4.3.2 逻辑表达式4.4 条件运算符和条件表达式4.5 选择结构的嵌套4.6 switch语句4.7 程序应用4.1 if语句If语句有三种基本形式(1)if (判断条件…

jQuery 请指出'$'和'$.fn'的区别?或者说出'$.fn'的用途。

http://hi.baidu.com/chy0806css/item/acc52425099c30ff50fd87eb Jquery为开发插件提供了两个方法&#xff0c;分别是&#xff1a; $.extend(obj);$.fn.extend(obj); 1.那么这两个分别是什么意思&#xff1f; $.extend(obj);是为了扩展jquery本身&#xff0c;为类添加新的方法 …

gentoo 安装时的网络配置

在变换根目录(chroot)前&#xff0c;需要拷贝dns文件 cp -L /etc/resolv.conf/mnt/gentoo/etc/resolv.conf 在变换根目录(chroot)后 1. 修改主机名称 nano -w /etc/conf.d/hostname 2. 修改工作组名称 nano -w /etc/conf.d/domainname rc-update add domainname default 3…

[每日一题] 11gOCP 1z0-052 :2013-09-1 RMAN-- repair failure........................................A20...

转载请注明出处&#xff1a;http://blog.csdn.net/guoyjoe/article/details/10859315 正确答案&#xff1a;D 一、模拟上题的错误&#xff1a; &#xff11;、删除4号文件 [oraclemydb ~]$ cd /u01/app/oracle/oradata/ocm/ [oraclemydb ocm]$ rm -rf users01.dbf&#xff12;、…

c语言学习自我评价,学习自我评价4篇

学习自我评价4篇发布时间&#xff1a;2019-04-08在这次研究性学习中&#xff0c;我们小组在老师的指导下&#xff0c;通过全体成员的协作分工、研究探讨&#xff0c;集全体之智慧&#xff0c;个人之所学&#xff0c;充分将课本中的理论知识与生活实践相结合&#xff0c;用理论指…

c语言整型数组操作,c语言的数组操作|时刻需

不多说了直接上代码吧1.整型的可变长度的数组#includemain(){/* 测试可变长度的数组(整型的) start */int m;int *a,*b,*a_same,*b_same;printf("输入数组a的个数&#xff1a;\n");scanf("%d",&m);a (int*)malloc(m*sizeof(int));//动态分配数组print…

用Crossdev安装MIPS交叉编译工具链

例如执行这样的安装命令&#xff1a; crossdev -S --ex-gdb --without-headers -t mipsel-unknown-linux-gnu 首先&#xff0c;修改/etc/make.conf文件&#xff0c;在文件最后加上PORTDIR_OVERLAY/usr/portage/&#xff08;不然会报错没有设置PORTDIR_OVERLAY&#xff09; 然后…

kafka集群 kubernetes_为什么 Kubernetes 如此受欢迎?

点击上方蓝色“火丁笔记”关注我们&#xff0c;设个星标&#xff0c;每天学习全栈知识在撰写本文时&#xff0c;Kubernetes 已有 6 年历史[1]了&#xff0c;在过去的两年中&#xff0c;它的流行度不断提高&#xff0c;一直是最受欢迎的平台之一[2]。今年&#xff0c;它成为最受…

Python基础-作用域和命名空间(Scope and Namespace)

在Python中&#xff0c;对象是独立的&#xff0c;不同作用域中的不同名字都可以被绑定在同一个对象上&#xff0c;当然对这个对象的修改会影响所有的引用。赋值操作就是名字和对象的绑定或重绑定。这和C中的引用是一样的。 1&#xff0c;基础概念 1.1 命名空间&#xff08;name…

android 动画 返回,Android“菜单图标变返回”动画

此例用到SVG动画&#xff0c;其中涉及三个XML文件&#xff0c;分别为&#xff1a;Vector矢量图&#xff0c;objectAnimator动画&#xff0c;以及一个animated-vector文件将前两个文件联合起来。1.在drawable文件夹下新建vector文件描述矢量图android:height"200dp"an…

TI Sitara AM335x系统之AM335x uboot spl分析

本文转载自nidetech的Blog芯片到uboot启动流程ROM → SPL→ uboot.img简介在335x 中ROM code是第一级的bootlader。mpu上电后将会自动执行这里的代码&#xff0c;完成部分初始化和引导第二级的bootlader&#xff0c;第二级的bootlader引导第三级bootader&#xff0c;在ti官方上…

安装vs2017出现闪退现象_二、vs2017出现闪退问题解决办法

1、出现“Project1.exe”(Win32): 已加载“C:\Users\Administrator\Documents\Visual Studio 2017\Projects\Project1\Debug\Project1.exe”。已加载符号。“Project1.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。“Project1.exe”(Win3…

Shell程序荟萃

--------------纯输出----------------1.sh #!/bin/shecho -e "Hello!world!\a\n"exit 0 --------------获得用户输入----------------2.sh #!/bin/shread -p "Please input your name:" nameecho -e "\nHello!$name"exit 0 --------------日期计…

android 安装第三方app,Android识别预装的第三方App方法实例

前言新买一台手机&#xff0c;里面会有很多App&#xff0c;有的属于系统App&#xff0c;不可卸载&#xff0c;有的属于第三方App&#xff0c;厂商会预装一些常用的或者给了他们广告费的App&#xff0c;这些是可以卸载的。如果要详细划分&#xff0c;系统App还可根据其路径不同进…

汽车动力电池

1 CE SMPS 1.1 术语 DSCG&#xff1a;Discharge&#xff0c;VBUS下拉放电电阻 flyback&#xff1a;反激 forward&#xff1a;正激 LISN&#xff1a;Line Impedance Stabilization Network SMPS&#xff1a;Switching Mode Power Supplies&#xff0c;开关电源的变压器在整流桥之…

mysql 碎片率_计算MySQL表碎片的SQL整理

原标题&#xff1a;计算MySQL表碎片的SQL整理这是学习笔记的第 2111 篇文章在之前整理过一版MySQL的数据字典&#xff0c;整理了一圈&#xff0c;发现远比想象的复杂。当然整理的过程不光是知识梳理的过程&#xff0c;也是转化为实践场景的一个过程&#xff0c;通过这样一个体系…

全志A10 Bootload加载过程分析

A10的启动过程大概可分为5步&#xff1a;BootRom&#xff0c;SPL&#xff0c;Uboot&#xff0c;Kernel&#xff0c;RootFileSystem。本文只关注镜像的加载过程&#xff0c;分析RootRom->SPL->Uboot的启动流程。系统上电后&#xff0c;ARM处理器在复位时从地址0x000000开始…