热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php加正则表达式,php–正则表达式

正则表达式语法参考.除换行符以外的所有字符\.转义字符(另有\*,\(,\\,等等.)^字符串开头$字符串结尾\d,\w,\s一个数字,字符[A-Za-z0-9_],空格.\D,\

正则表达式语法参考

. 除换行符以外的所有字符

\. 转义字符(另有\*, \(, \\, 等等.)

^ 字符串开头

$ 字符串结尾

\d,\w,\s 一个数字, 字符 [A-Za-z0-9_], 空格.

\D,\W,\S 一个非数字, 非字符 [A-Za-z0-9_], 非空格.

[abc] a,b或c中的一个.

[a-z] a到z中的一个字母.

[^abc] 除a,b或c的一个字符.

aa|bb aa或者bb.

? 0次或1次匹配.

* 任意次数匹配.

+ 一次或一次以上匹配.

{n} n次精确匹配.

{n,} n次或n次以上匹配.

{m,n} 最少m次,最多n次匹配.

??,*?,+?,{n}?, etc. 同上,但尽可能少次数的匹配.

(expr) 捕获 expr 子模式,以 \1使用它, 等等.

(?:expr) 忽略捕获的子模式.

(?=expr) 正向预查模式 expr.

(?!expr) 负向预查模式 expr.

php正则函数介绍与区别

preg_match & preg_match_all

//执行一个正则表达式的匹配

preg_match(string $pattern , string $subject[,array $matches])

//执行一个全局正则表达式匹配

preg_match_all(string $pattern , string $subject[,array $matches])

preg_match() 返回 $pattern的匹配次数0或1次,因为匹配到第一个后就会停止搜索,而 preg_match_all() 将会一直搜索 $subject 到结尾

$pattern='/[0-9]/';

$object='werdf43ofd9as2noi4';

$m1=$m2=array();

preg_match($pattern,$object,$m1);

preg_match_all($pattern,$object,$m2);

var_dump($m1);

var_dump($m2);

//结果:

Array

(

[0] => 4

)

Array

(

[0] => Array

(

[0] => 4

[1] => 3

[2] => 9

[3] => 2

[4] => 4

)

)

preg_fiflter & preg_replace

//只返回经过正则匹配的结果

preg_fiflter(mixed $pattern , mixed $replacement , mixed $subject)

//放回所有结果

preg_replace(mixed $pattern , mixed $replacement , mixed $subject)

$subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');

$pattern = array('/\d/', '/[a-z]/', '/[1a]/');

$replace = array('A:$0', 'B:$0', 'C:$0');

echo "preg_filter returns\n";

print_r(preg_filter($pattern, $replace, $subject));

echo "preg_replace returns\n";

print_r(preg_replace($pattern, $replace, $subject));

//结果:

preg_filter returns

Array

(

[0] => A:C:1

[1] => B:C:a

[2] => A:2

[3] => B:b

[4] => A:3

[7] => A:4

)

preg_replace returns

Array

(

[0] => A:C:1

[1] => B:C:a

[2] => A:2

[3] => B:b

[4] => A:3

[5] => A

[6] => B

[7] => A:4

)

其他正则函数介绍

preg_quote(string $pattern) — 转义正则表达式字符,有时候匹配字符中包含正则表达式语法,需要进行转义才能进行匹配

正则表达式特殊字符有&#xff1a; . &#43; * ? [ ^ ] $ ( ) { } &#61; ! <> | : -

preg_split(string $pattern , string $subject) — 通过一个正则表达式分隔字符串,类似于explode函数

preg_grep — 返回匹配模式的数组条目

$array &#61; array("23.32","22","12.009","23.43.43");

print_r(preg_grep("/^(\d&#43;)?\.\d&#43;$/",$array));

//结果&#xff1a;

Array

(

[0] &#61;> 23.32

[2] &#61;> 12.009

)

preg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换

// 将文本中的年份增加一年.

$text &#61; "April fools day is 04/01/2002\n";

$text.&#61; "Last christmas was 12/24/2001\n";

// 回调函数

function next_year($matches)

{

// 通常: $matches[0]是完成的匹配

// $matches[1]是第一个捕获子组的匹配

// 以此类推

return $matches[1].($matches[2]&#43;1);

}

echo preg_replace_callback(

"|(\d{2}/\d{2}/)(\d{4})|",

"next_year",

$text);

?>

//结果

April fools day is 04/01/2003

Last christmas was 12/24/2002



推荐阅读
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
  • 本文整理了Java中org.apache.solr.common.SolrDocument.setField()方法的一些代码示例,展示了SolrDocum ... [详细]
  • 抽空写了一个ICON图标的转换程序
    抽空写了一个ICON图标的转换程序,支持png\jpe\bmp格式到ico的转换。具体的程序就在下面,如果看的人多,过两天再把思路写一下。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 总结一下C中string的操作,来自〈CPrimer〉第四版。1.string对象的定义和初始化:strings1;空串strings2(s1);将s2初始 ... [详细]
author-avatar
1098502132_027279
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有