Php中的正则表达式
这篇文章主要介绍了关于Php中的正则表达式,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
简单介绍正则表达式及其作用
Ø 正则表达式的了解
n 正则表达式就是描述字符串排列模式的一种自定义语言规则
n 如果可以使用字符串处理函数完成的任务,就不要使用正则表达式
n 有一些复杂性的操作,只能用正则表达式
n 正则表达式也称为一种模式表达式
n 正则表达式就是通过具有特定规则的模式,在与输入的字符串信息进行比较、分割、查找、替换等操作。
Ø 正则表达式的特点
n 正则表达式也是一个字符串
n 由具有特殊意义的字符串组成的字符串
n 具有一定编写规则,也是一种模式
n 看做是一种编程语言:是用一些特殊字符,按照规则编写出来一个字符串,形成一种模式
注意:如果正则表达式不和函数一起使用,则就是一个字符串,如果正则表达式放到某个函数中使用,才能发挥正则表达式的真正作用。
Ø PHP中提供了两套正则表达式函数库
Posix扩展正则表达式ereg_开头的函数
perl兼容正则表达式preg_开头的函数
推荐使用prel 兼容正则表达式函数库
正则表达式的语法
Ø 正则定界符
Ø 正则表达式中的原子
Ø 正则表达式中的元字符
Ø 正则表达式的模式修正符
正则定界符
正则的定界符就是用来声明正则表达式边界的符号。
正则表达式常用的边界符为 /,实际上任何非数字字母以及反斜线\ 之外的任意字符都可以做正则表达式的边界符。
注意:一个完整的正则表达式有两个边界符
n 一个是字符串类型的引号边界符 ''
n 一个是正则表达式的边界符 //(一般用/)
n 整体就是 '//'
正则表达式的原子
组成正则表达式的最小单位就是原子
正则的数字字母都是原子,大部分不可见的字符也是原子。
例如:\n\r\t...这些转译字符都是元素
Ø 正则中原子
\d 表示 0-9之间的一个数字
\D 表示除了0-9之间的任意一个字符
\s 表示匹配任意一个空白字符包括 \n\r\t..
\S 表示除了空白符或者转译字符之外的任意一个字符
\w 表示大小写字符数字以及下划线当中任意一个字符
\W 表示除了大小写字母数字以及下划线之外的任意一个字符
正则表达式中的元字符(原子修饰符)
Ø [] 原子列表
表示在指定的字符中选择一个原子
例如:[5-9] 表示5 6 7 8 9连续得字符允许缩写为:[开始字符 -结束字符]
Ø [^] 排除列表
例如:[^4 ] 表示除了4之外的任意一个字符都可以
Ø 用元字符(原子修饰符)来模拟原子
\d [0-9] \D [^0-9]
\s [\n\r\t] \S[^\n\r\t]
\w[a-zA-Z0-9] \W[^a-zA-Z0-9]
Ø 原子数量修饰符
? 表示前面的原子出现0次或者1次
+ 表示前面的原子出现1次或者多次
* 表示前面的原子出现0次或者多次
Ø 原子数量修饰列表
n {m,n} 表示前面的原子最小出现m次,最多出现n次
n {m,}表示前面的原子最少出现m次
n {m} 表示前面的原子只能出现m次
Ø 原子数量修饰列表模拟数量修饰符
? {0,1}
+ {1,}
* {0,}
Ø 字符串边界修饰符
^ 表示以指定字符开头的内容
$ 表示以指定字符结尾的内容
注意:
^ $一前一后表示精准修饰限定两者之间的内容是否一致
u 如果要使用^和$ 可以匹配每一行的开始和结束部分,需要使用模拟修正符m
Ø | 选择修饰符
n 或与且类似
Ø () 模式单元
n 改变优先级
n 将多原子视为一个原子,可以使用原子数量修饰符
n 将匹配到的括号中的内容暂时存为内存中
n 如果使用()仅仅为了模拟一个原子使用原子数量修饰符,那么可以在括号的开始处使用?: 来接触存于内容的作用,提高效率
n 可以将括号的内容在函数的辅助下进行反向引用操作
Ø 元字符
.(点)匹配除了\n之外的任意一个字符
正则表达式模拟修正符
Ø i 忽略大小写
Ø x 忽略正则表达式中得空白
Ø s 使用.(元字符)可以匹配到\n
Ø S 加速匹配
Ø U 模式 改变贪婪模式
改变贪婪模式,程序默认是贪婪模式,匹配最远的结束为止,我们可以在正则中使用*?匹配任意字符的同时使用非贪婪模式
注意:如果此时程序为贪婪模式,使用U后,则程序变为非贪婪模式。如果此时程序为非贪婪模式,使用U后,程序变为贪婪模式
正则表达式的函数
Ø preg_grep() 返回与模式匹配的数组单元
@param1:正则表达式
@param2:要匹配的数组
@param3:可选参数默认为false。设置为true表示返回与模式匹配相反的数组单元
返回值:返回与模式匹配的数组单元
Ø preg_match() 进行一次正则匹配适合做查询有没有
@param1:正则表达式
@param2:要匹配的字符串
@param3:可选参数,返回与正则表达式匹配的内容
返回值:成功返回1,失败返回0 1表示匹配的次数
Ø preg_match_all() 进行正则匹配 适合查询有多少
@param1:正则表达式
@param2:要匹配的字符串
@param3:可选参数,返回与正则表达式匹配的内容
返回值:返回匹配的次数,如果没有匹配带则返回0
Ø preg_split() 用正则表达式分隔字符串
@param1:正则表达式
@param2:要分隔的字符串
@param3:返回分隔后的数组
Ø preg_replace() 执行正则表达式的替换
@param1:要查找正则表达式
@param2:要替换的内容
@param3:在哪里进行替换操作(数组还是字符串)
返回值:返回替换后的数组或者字符串
相关推荐:
以上是Php中的正则表达式的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。
