PHP8的正则表达式-PHP8知识详解

在网页程序的时候,经常会有查找符合某些复杂规则的字符串的需求。正则表达式就是描述这些规则的工具。

正则表达式是把文本或者字符串按照一定的规范或模型表示的方法,经常用于文本的匹配操作。

例如:我们在填写手机号码的时候,可以使用正则表达式来验证是否符合规则,若匹配就被进行正常处理,若不匹配,则给出错误提示信息。所以说正则表达式在互联网应用中有很重要的作用。

一般情况下,正则表达式由两部分组成,分别是元字符和文本字符。元字符就是具有特殊含义的字符,如"?"和"*"等。文本字符就是普通的文本,如字母数字等。

1、行定位符

行定位符用来确定匹配字符串所要出现的位置。

如果是目标字符串开头出现,则使用符号"^";如果是在目标字符串结尾出现,则使用符号"$"。

示范:

复制代码
^我

就是表达以我开头的字符串,就能匹配。如:"我为大家"。而"大家为我"则不匹配。

示范:

复制代码
我$

就是表达以我结尾的字符串,就能匹配。如:"大家为我"。而"我为大家"则不匹配。

如果要想匹配字符串出现的任何位置,直接写成

复制代码

如果同时使用"^"和"",比如"\^\[0-9\]"表示目标字符串从0-9的单个字符。比如"^[a-z]$"表示目标字符串从a-z的单个字符。

2、元字符

php元字符是一组特殊字符,用于在正则表达式中表示模式的不同部分。以下是PHP中常用的一些元字符:

2.1、.(点号):匹配除换行符以外的任意字符。

2.2、^(脱字符):匹配字符串的开头。

2.3、$(美元符号):匹配字符串的结尾。

2.4、\w:匹配字母、数字、下划线或汉字。

2.5、\s:匹配任意空白字符。

2.6、\d:匹配数字。

2.7、\b:匹配单词的开头或结尾。

3、限定符

3.1、*(星号):匹配前面的元素零次或多次。

3.2、?(问号):匹配前面的元素零次或一次。

3.3、+(加号):匹配前面的元素一次或多次。

3.4、{n},{n,},{n,m}:匹配字符n次,最少n次,最少n次最多m次、

3.5、.*:点号和星号一起使用,表示任意字符串。

4、方括号"[]"

4.1、[](方括号):定义一个字符类,匹配方括号中的任意一个字符。

4.2、[^](否定方括号):定义一个否定字符类,匹配除方括号中字符以外的任意字符。

5、连字符"-"

很多情况下不易列出所有字符,所以使用连字符。如:

a-z\]:匹配小写字母a到z的任意字符。 \[A-Z\]:匹配大写字母A到Z的任意字符。 \[a-zA-Z\]:匹配小写字母a到大写字母Z的任意字符。 \[0-9\]:匹配数字0-9的任意字符。 ## 6、选择字符"\|" \|(竖线):用于指定多个模式中的一个。 如:"php\|css\|[html](https://www.phpfw.com/tag/html/ "html")"表示目标含有php或者css或者html。 ## 7、[转义字符](https://www.phpfw.com/tag/zhuanyizifu/ "转义字符") \\(反斜杠):用于转义特殊字符,使其失去特殊含义。 ## 8、分组 8.1、 小括号字符的作用就是分组,也就是子表达式。如:(\\.\[0-9\]{1,3}){3},就是对分组(\\.\[0-9\]{1,3})进行重复操作。 8.2、小括号还可以改变限定符的作用范围。如:c(om\|n)就是com或cn。

相关推荐
JaguarJack2 天前
FrankenPHP 原生支持 Windows 了
后端·php·服务端
BingoGo2 天前
FrankenPHP 原生支持 Windows 了
后端·php
JaguarJack3 天前
PHP 的异步编程 该怎么选择
后端·php·服务端
BingoGo3 天前
PHP 的异步编程 该怎么选择
后端·php
JaguarJack4 天前
为什么 PHP 闭包要加 static?
后端·php·服务端
ServBay5 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954485 天前
CTF 伪协议
php
BingoGo7 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack7 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo8 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php