最适合网络开发者的网站

PHP 教程

PHP 主页 PHP 简介 PHP 安装 PHP 语法 PHP 注释 PHP 变量 PHP 回显/打印 PHP 数据类型 PHP 字符串 PHP 数字 PHP 数学 PHP 常量 PHP 运算符 PHP 如果...否则...Elseif PHP 开关 PHP 循环 PHP 函数 PHP 数组 PHP 超全局变量 PHP 正则表达式

PHP 形式

PHP 表单处理 PHP 表单验证 需要 PHP 表单 PHP 表单 URL/电子邮件 PHP 表单完成

PHP 先进的

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

PHP 面向对象

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 哪里 MySQL 排序依据 MySQL 删除数据 MySQL 更新数据 MySQL 限制数据

PHP XML

PHP XML 解析器 PHP SimpleXML 解析器 PHP SimpleXML - 获取 PHP XML 扩展 PHP XML DOM

PHP - 阿贾克斯

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 FTP PHP 的 JSON PHP 关键字 PHP 库 PHP 邮件 PHP 数学 PHP 杂项 PHP MySQLi PHP 网络 PHP 输出控件 PHP 正则表达式 PHP 简单 XML PHP 流 PHP 字符串 PHP 变量处理 PHP XML解析器 PHP 压缩文件 PHP 时区

PHP。初学者课程

尿素

PHP 常用表达


什么是正则表达式?

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

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

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


句法

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

$exp = "/w3schools/i";

在上面的例子中, / 是个分隔符, w3学校 是个图案 正在搜索的内容,以及 i修饰符 这使得搜索不区分大小写。

分隔符可以是任何非字母、数字、反斜杠或空格的字符。最常见的分隔符是正斜杠 (/),但当您的模式包含正斜杠时,选择其他分隔符(如 # 或 ~)会更方便。


正则表达式函数

PHP 提供了多种允许你使用正则表达式的函数。 preg_match(), preg_match_all()preg_replace() 以下是一些最常用的函数:

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

使用 preg_match()

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

例子

使用正则表达式在字符串中对“w3schools”进行不区分大小写的搜索:

<?php
$str = "访问 W3Schools";
$pattern =“/w3schools/i”;
echo preg_match($pattern, $str); // 输出 1
?>
亲自尝试 »

使用 preg_match_all()

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

例子

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

<?php
$str = "西班牙的降雨主要降落在平原上。";
$pattern =“/ain/i”;
echo preg_match_all($pattern, $str); // 输出 4
?>
亲自尝试 »

使用 preg_replace()

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

例子

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

<?php
$str = "访问微软!";
$pattern =“/微软/我”;
echo preg_replace($pattern, "W3Schools", $str); // 输出“访问 W3Schools!”
?>
亲自尝试 »

正则表达式修饰符

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

修改器 描述
执行不区分大小写的搜索
执行多行搜索(搜索字符串开头或结尾的模式将匹配每行的开头或结尾)
启用 UTF-8 编码模式的正确匹配

正则表达式模式

括号用于查找字符范围:

表达 描述
[英文] 从括号内的选项中查找一个字符
[^abc] 查找不在括号内的任意字符
[0-9] 从 0 到 9 范围内查找一个字符

元字符

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

元字符 描述
| 查找由 | 分隔的任意一个模式的匹配项,例如:cat|dog|fish
. 仅查找任意字符的一个实例
^ 查找与字符串开头匹配的内容,例如:^Hello
$ 在字符串末尾查找匹配项,例如:World$
\d 查找数字
\s 查找空白字符
\b 在单词开头查找匹配项,如下所示:\bWORD,或在单词结尾查找匹配项,如下所示:WORD\b
\uxxxx 查找十六进制数 xxxx 指定的 Unicode 字符

量词

量词定义数量:

量词 描述
n+ 匹配至少包含一个 n
n* 匹配包含零次或多次出现的任意字符串 n
否? 匹配包含零次或一次出现的任意字符串 n
n{x} 匹配包含以下序列的任何字符串 X n
n{x,y} 匹配任何包含 X 到 Y 序列的字符串 n
n{x,} 匹配任何包含至少 X 个序列的字符串 n

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


分组

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

例子

使用分组搜索单词“香蕉”,方法是查找 随后出现了两个:

<?php
$str = "苹果和香蕉。";
$pattern = "/ba(na){2}/i";
echo preg_match($pattern, $str); // 输出 1
?>
亲自尝试 »

完整的 RegExp 参考

如需完整参考,请访问我们的 完整的 PHP 正则表达式参考.

该参考包含所有正则表达式函数的描述和示例。