热门标签 | 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



推荐阅读
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 题目描述:牛客网新员工Fish每天早上都会拿着一本英文杂志,在本子上写下一些句子。他的同事Cat对这些句子非常感兴趣,但发现这些句子的单词顺序被反转了。例如,“student. a am I”实际上是“I am a student.”。Cat请求你帮助他恢复这些句子的正常顺序。 ... [详细]
  • 本文记录了 JavaScript 中正则表达式的使用方法和常见操作,包括匹配、替换、搜索等。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
  • Python内置模块详解:正则表达式re模块的应用与解析
    正则表达式是一种强大的文本处理工具,通过特定的字符序列来定义搜索模式。本文详细介绍了Python内置的`re`模块,探讨了其在字符串匹配、验证和提取中的应用。例如,可以通过正则表达式验证电子邮件地址、电话号码、QQ号、密码、URL和IP地址等。此外,文章还深入解析了`re`模块的各种函数和方法,提供了丰富的示例代码,帮助读者更好地理解和使用这一工具。 ... [详细]
  • Vue ElementUI 实现邮箱地址自动补全功能详解 ... [详细]
  • 利用 PHP APICommonUrl 中转实现 jQuery JSONP 请求优化 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
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社区 版权所有