PHP中正则表达式的声明格式有两种方式,一种是POSIX老版模式,已经不常用。还有一种是其他语言中常见的PCRE方法。

1.正则表达式的匹配方法并返回匹配的项:array preg_grep(string reg,array 被匹配的数组);

$reg="/a|b/";
$str=array('abcaBC','bcd','kkk');
$ar=preg_grep($reg,$str);
print_r($ar);//Array ( [0] => abcaBC [1] => bcd )

2.判断目标字符串是否匹配正则表达式:int preg_match(string 正则表达式,string 目标字符串,array 存放数组(可有可无));  int preg_match_all(string 正则表达式,string 目标字符串,array 存放数组);

 $arr=$arr2=array();
$reg="/a|b/";
$str='cccacccccaa';
echo preg_match_all($reg,$str,$arr);//
echo preg_match($reg,$str,$arr2);//
print_r($arr);//Array ( [0] => Array ( [0] => a [1] => a [2] => a ) )
print_r($arr2);//Array ( [0] => a )

3.将字符串中的特殊字符转义 string preg_quote(string 目标字符串,string 指定转义的字符串(可有可无));

$str="\$$^&#@";
$str2='\$$^&#@';
echo preg_quote($str);// \$\$\^&#@
echo preg_quote($str2);// \\\$\$\^&#@
echo preg_quote($str,'@');// \$\^&#\@

4.正则表达式的替换函数:preg_replace(string 正则,string 替换字符,string 目标字符串,int 替换次数(可有可无,默认全部替换));

$reg="/a|b/";
$str='abcskdfaasdca';
echo preg_replace($reg,'@',$str);//@@cskdf@@sdc@
echo preg_replace($reg,'@',$str,2);//@@cskdfaasdca

5.正则表达式的替换函数:preg_replace_callback(string 正则 ,string callback函数名,string 目标字符串,int 可有可无的替换次数);

function call($ss){
$ss='obj';
return $ss;
}
$reg="/a|b/";
$str='abcdefga';
echo preg_replace_callback($reg,'call',$str);//objobjcdefgobj
echo preg_replace($reg,'call',$str,2);//objobjcdefga

6.用正则表达式分割字符串,返回一个数组:array preg_split(string 正则,string 目标字符串,int 分割次数(可有可无)); 注:作为分割的匹配项被删除。

$reg="/a/";
$str='abcadeafga';
print_r(preg_split($reg,$str));//Array ( [0] => [1] => bc [2] => de [3] => fg [4] => )
print_r(preg_split($reg,$str,2));//Array ( [0] => [1] => bcadeafga )

【六】PHP正则表达式方法的更多相关文章

  1. 千万别把js的正则表达式方法和字符串方法搞混淆了

    我们在字符串操作过程中肯定经常用了test() split() replace() match() indexof()等方法,很多人经常把用法写错了,包括我,所以今天细细的整理了下. test()是判 ...

  2. javascript入门篇(六、正则表达式)

    JavaScript 正则表达式 正则表达式是由一个字符序列形成的搜索模式.当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容. 正则表达式可以是一个简单的字符,或一个更复杂的模式.正则表达 ...

  3. JS正则表达式方法

    使用正则表达式的主要有match,exec,test 1.正则表达式方法test测试给定的字符串是否满足正则表达式,返回值是bool类型的,只有真和假. var user_code = $(" ...

  4. devi into python 笔记(六)正则表达式 原始字符串

    字符串函数replace: #string.replace: #字符串的replace方法:替换子串,不改变原来的字符串 s = "broad road" #打印出来会发现不单单是 ...

  5. C#编程(四十六)----------正则表达式

    正则表达式 1.定义一个Regex类的实例 Regex regex=new Regex(“”); 这里初始化参数就是一个正则表达式,”\d”表示配置数字 2.判断是否匹配 判断一个字符串,是否匹配一个 ...

  6. PHP:第六章——正则表达式的基本概念

    <?php header("Content-Type:text/html;charset=utf-8"); //正则表达式的基本概念: //宽松匹配和严格匹配: //常见的匹 ...

  7. PHP十六个魔术方法

    PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct ...

  8. 章节十六、3-TestNG方法和类注解

    一.Test Suite(测试套件) 我们通常认为一个testcase就是一个测试方法,但是会有很多的testcase,所以我们不可能把所有的testcase放到同一个测试类中,假如需要测试的页面有1 ...

  9. Java学习笔记【六、正则表达式】

    参考:http://www.runoob.com/java/java-regular-expressions.html 概述 java.util.regex包,主要包含三个类: Pattern:正则表 ...

随机推荐

  1. LaTeX中无法显示中文问题

  2. EMVTag系列3《持卡人基本信息数据》

    Ø  9F61    持卡人证件号 L:2–26 R(需求):数据应存在,在读应用数据过程中,终端不检查: (PBOC2.0第五部分中规定)芯片中持卡人姓名 5F20与持卡人姓名扩展9F0B只能使用一 ...

  3. 'mysql.column_stats' doesn't exist and Table 'mysql.index_stats' doesn't exist

    在生产库MariabDB中修改字段类型,提示如下错误:​Table 'mysql.column_stats' doesn't existTable 'mysql.index_stats' doesn' ...

  4. linux清除swap

    执行top会显示Cpu(s):  0.7%us,  0.3%sy,  0.0%ni, 99.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stMem:   2044500 ...

  5. 数据持久化-Plist文件写入

    数据持久化,常见4种:归档,plist文件,sqlite,coreData.今天复习的是plist文件读写. // // ViewController.m // Test_Plist // // Cr ...

  6. MVC4.0 解决Controllers与Areas中控制器不能同名问题

    在使用MVC4.0的时候,难免会遇到在根目录下的Controllers中添加的控制器名称可能会跟在Areas中的某个区域下的控制器名称一样.这个时候访问Areas下面的Controller/Actio ...

  7. 实体框架 (EF) 入门 => 一、我该用哪个工作流?

    入门的参考资料:http://msdn.microsoft.com/zh-cn/data/ee712907 本篇的参考资料:http://msdn.microsoft.com/zh-cn/data/j ...

  8. 基础语法 swift

    强类型语言:每句代码可以不用分号分隔:大小写敏感: 变量声明: var a = 0 常量声明 let b = 3.14 常量不能+变量?a+b 类型标注 var s :String 打印 pringl ...

  9. OpenGL学习笔记之了解OpenGL

    OpenGL(全写Open GraphicsLibrary)是个定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库. 说 ...

  10. Xcode 7遇到 App Transport Security has blocked a cleartext HTTP 错误

    今天用Xcode 7 创建新项目用到 URL 发送请求时,报下面的错: “App Transport Security has blocked a cleartext HTTP (http://) r ...