Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

PHP 教程

PHP 主页 PHP 简介 PHP 安装 PHP 语法 PHP 注释 PHP 变量 PHP Echo/Print PHP 数据类型 PHP 字符串 PHP 数字 PHP 类型转换 PHP 数学 PHP 常量 PHP 魔术常量 PHP 运算符 PHP If...Else...Elseif PHP Switch PHP 循环 PHP 函数 PHP 数组 PHP 超级全局变量 PHP 正则表达式

PHP 表单

PHP 表单处理 PHP 表单验证 PHP 表单必填项 PHP 表单 URL/电子邮件 PHP 表单完整

PHP 高级

PHP 日期和时间 PHP Include PHP 文件处理 PHP 文件打开/读取 PHP 文件创建/写入 PHP 文件上传 PHP Cookie PHP 会话 PHP 过滤器 PHP 高级过滤器 PHP 回调函数 PHP JSON PHP 异常

PHP OOP

PHP 什么是 OOP PHP 类/对象 PHP 构造函数 PHP 析构函数 PHP 访问修饰符 PHP 继承 PHP 常量 PHP 抽象类 PHP 接口 PHP 特性 PHP 静态方法 PHP 静态属性 PHP 命名空间 PHP 可迭代对象

MySQL 数据库

MySQL 数据库 MySQL 连接 MySQL 创建数据库 MySQL 创建表 MySQL 插入数据 MySQL 获取最后插入 ID MySQL 插入多行数据 MySQL 预处理语句 MySQL 选择数据 MySQL Where MySQL Order By MySQL 删除数据 MySQL 更新数据 MySQL 限制数据

PHP XML

PHP XML 解析器 PHP SimpleXML 解析器 PHP SimpleXML - 获取 PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX 简介 AJAX PHP AJAX 数据库 AJAX XML AJAX 实时搜索 AJAX 投票

PHP 示例

PHP 示例 PHP 编译器 PHP 测验 PHP 练习 PHP 服务器 PHP 证书

PHP 参考

PHP 概述 PHP 数组 PHP 日历 PHP 日期 PHP 目录 PHP 错误 PHP 异常 PHP 文件系统 PHP 过滤器 PHP FTP PHP JSON PHP 关键字 PHP Libxml PHP 邮件 PHP 数学 PHP 杂项 PHP MySQLi PHP 网络 PHP 输出控制 PHP 正则表达式 PHP SimpleXML PHP 流 PHP 字符串 PHP 变量处理 PHP XML 解析器 PHP Zip PHP 时区

PHP 正则表达式


什么是正则表达式?

正则表达式是由字符组成的序列,形成搜索模式。当您在文本中搜索数据时,可以使用此搜索模式来描述要搜索的内容。

正则表达式可以是单个字符,也可以是更复杂的模式。

正则表达式可用于执行各种类型的文本搜索和文本替换操作。


语法

在 PHP 中,正则表达式是字符串,由定界符、模式和可选修饰符组成。

$exp = "/w3schools/i";

在上面的示例中,/ 是**定界符**,w3schools 是要搜索的**模式**,i 是一个**修饰符**,它使搜索不区分大小写。

定界符可以是任何不是字母、数字、反斜杠或空格的字符。最常见的定界符是正斜杠 (/),但如果您的模式包含正斜杠,则选择其他定界符(例如 # 或 ~)会很方便。


正则表达式函数

PHP 提供了许多函数,允许您使用正则表达式。

最常见的函数是

函数 描述
preg_match() 如果在字符串中找到模式,则返回 1,否则返回 0
preg_match_all() 返回在字符串中找到模式的次数,也可能是 0
preg_replace() 返回一个新的字符串,其中匹配的模式已被替换为另一个字符串

使用 preg_match()

函数 preg_match() 将告诉您字符串是否包含模式的匹配项。

示例

使用正则表达式在字符串中不区分大小写地搜索“w3schools”

$str = "Visit W3Schools";
$pattern = "/w3schools/i";
echo preg_match($pattern, $str);
尝试一下 »

使用 preg_match_all()

函数 preg_match_all() 将告诉您在字符串中找到的模式的匹配项数。

示例

使用正则表达式不区分大小写地计算字符串中“ain”出现的次数

$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
echo preg_match_all($pattern, $str);
尝试一下 »

使用 preg_replace()

函数 preg_replace() 将用另一个字符串替换字符串中所有模式的匹配项。

示例

使用不区分大小写的正则表达式将字符串中的 Microsoft 替换为 W3Schools

$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "W3Schools", $str);
尝试一下 »


正则表达式修饰符

修饰符可以改变搜索执行的方式。

修饰符 描述 尝试一下
i 执行不区分大小写的搜索 尝试一下 »
m 执行多行搜索(搜索字符串开头或结尾的模式现在将匹配每行的开头或结尾) 尝试一下 »
u 启用对 UTF-8 编码模式的正确匹配

正则表达式模式

方括号用于查找字符范围

表达式 描述 尝试一下
[abc] 查找方括号内的一个或多个字符 尝试一下 »
[^abc] 查找方括号之间没有的任何字符 尝试一下 »
[a-z] 查找两个字母之间按字母顺序排列的任何字符 尝试一下 »
[A-z] 查找指定大写字母和指定小写字母之间按字母顺序排列的任何字符 尝试一下 »
[A-Z] 查找两个大写字母之间按字母顺序排列的任何字符。 尝试一下 »
[123] 查找方括号内的一个或多个数字 尝试一下 »
[0-5] 查找两个数字之间的任何数字 尝试一下 »
[0-9] 查找任何数字 尝试一下 »

元字符

元字符是具有特殊含义的字符

元字符 描述 尝试一下
| 查找与以 | 分隔的任何一个模式匹配,如:cat|dog|fish 尝试一下 »
. 查找任何字符 尝试一下 »
^ 查找字符串开头的匹配项,如:^Hello 尝试一下 »
$ 查找字符串结尾的匹配项,如:World$ 尝试一下 »
\d 查找任何数字 尝试一下 »
查找任何数字 \D 尝试一下 »
查找任何非数字 \s 尝试一下 »
查找任何空白字符 \S 尝试一下 »
查找任何非空白字符 \w 尝试一下 »
查找任何字母字符(a 到 Z)和数字(0 到 9) \W 尝试一下 »
查找任何非字母字符和非数字字符 \b 尝试一下 »
在单词开头查找匹配项,例如:\bWORD,或在单词结尾查找匹配项,例如:WORD\b \uxxxx 尝试一下 »

查找十六进制数字 xxxx 指定的 Unicode 字符

量词

量词定义数量 描述 尝试一下
量词+ n 尝试一下 »
量词* 匹配包含至少一个n的任何字符串
量词? 匹配包含零个或多个n的任何字符串
匹配包含零个或一个n的任何字符串 n{3} 尝试一下 »
匹配包含3n序列的任何字符串 n{2, 5} 尝试一下 »
量词{3,} 匹配包含至少 2 个但不超过 5 个n序列的任何字符串 尝试一下 »

匹配包含至少 3 个n序列的任何字符串


注意:如果您的表达式需要搜索一个特殊字符,您可以使用反斜杠 ( \ ) 对它们进行转义。例如,要搜索一个或多个问号,可以使用以下表达式:$pattern = '/\?+/';

分组

示例

您可以使用括号 ( ) 将量词应用于整个模式。它们也可以用于选择作为匹配项使用的模式的一部分。

$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo preg_match($pattern, $str);
尝试一下 »

使用分组来搜索单词“banana”,方法是查找ba后跟两个na实例

完整 RegExp 参考

有关完整参考,请访问我们的 完整 PHP 正则表达式参考



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.