【PHP正则表达式进阶必读】:preg_match_all结果数组全维度拆解

第一章:preg_match_all函数核心机制解析

在PHP的正则表达式处理中,preg_match_all 是一个关键函数,用于全局搜索字符串中所有与正则模式匹配的结果,并将它们存储到数组中。与 preg_match 只返回首次匹配不同,该函数会持续查找直到字符串末尾。

功能与语法结构

preg_match_all 的标准语法如下:


// 语法格式
int preg_match_all ( string $pattern , string $subject , array &$matches [, int $flags = 0 [, int $offset = 0 ]] )

其中,$pattern 是正则表达式模式,$subject 是待搜索的字符串,$matches 是输出参数,保存所有匹配结果。

匹配结果的组织方式

默认情况下,$matches 数组的结构为索引数组嵌套,外层数组的每个元素对应一次完整匹配,内层则包含子组捕获内容。通过设置 PREG_SET_ORDER 标志,可改变其排序逻辑。

  • PREG_PATTERN_ORDER:按模式分组组织结果(默认)
  • PREG_SET_ORDER:按每次匹配的集合组织结果
  • PREG_OFFSET_CAPTURE:附加匹配内容在原字符串中的偏移量
实际应用示例

以下代码演示如何提取一段文本中所有的电子邮件地址:


$subject = "联系我 at alice@example.com 或者 bob@test.org 获取更多信息。";
$pattern = '/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/';
preg_match_all($pattern, $subject, $matches);

// 输出所有匹配的邮箱
foreach ($matches[0] as $email) {
    echo "找到邮箱: " . $email . "\n";
}

执行后,$matches[0] 将包含两个邮箱地址,分别对应两次成功匹配。

返回值与错误处理

返回值含义
> 0成功匹配的次数
0未发现匹配项
FALSE发生错误(如正则语法错误)

第二章:结果数组结构深度剖析

2.1 默认PREG_PATTERN_ORDER模式下的数组组织逻辑

在PHP中,`preg_match_all()`函数默认使用`PREG_PATTERN_ORDER`模式组织匹配结果。该模式按完整正则表达式的维度排列数据,每个子模式的匹配项依次堆叠。
输出结构特征
返回数组的索引顺序与捕获组对应:索引0存储完整匹配内容,后续索引对应各括号内的子组。

$pattern = '/(\d{4})-(\d{2})-(\d{2})/';
$text = '日期:2023-04-15 和 2023-05-20';
preg_match_all($pattern, $text, $matches);

// $matches[0] 包含全部完整匹配
// $matches[1] 包含所有年份
// $matches[2] 包含所有月份
上述代码中,`$matches`是一个二维数组,第一维代表捕获组编号,第二维为同一组在不同匹配位置的结果集合。这种结构便于批量提取特定类型信息,例如集中获取所有年份值。
  • 主数组键对应正则中的捕获组顺序
  • 子数组按文本中出现顺序存放匹配实例
  • 适合需要按类型聚合数据的场景

2.2 多重捕获组在结果中的层级映射实践

在正则表达式处理复杂文本结构时,多重捕获组能够将匹配内容按层级组织。通过嵌套分组,可实现对数据结构的精确提取与映射。
捕获组的层级结构
每个括号表示一个捕获组,嵌套括号形成层级关系。外层组包含内层组的内容,解析时按左括号顺序编号。
(\d{4})-(\d{2})-(\d{2})(?:T(\d{2}):(\d{2}))
该正则匹配日期时间,前三个组分别捕获年、月、日,后两个组捕获时、分。第四个组为非捕获组(?:),不参与编号。
结果映射示例
捕获组编号对应内容
12025
204
301
415
530
逻辑分析:捕获组按出现顺序编号,忽略非捕获组。应用中可通过索引访问各层级数据,实现结构化解析。

2.3 匹配位置与子组索引的对应关系详解

在正则表达式中,匹配位置与子组索引的对应关系决定了捕获内容的结构化提取方式。每个用括号包裹的子表达式会生成一个子组,按左括号出现顺序从1开始编号。
子组索引规则
  • 索引0始终代表整个匹配结果
  • 第一个左括号对应子组1,依此类推
  • 嵌套子组按外层左括号顺序编号
示例解析
(\d{4})-(\d{2})-(\d{2})T(\d{2}:(\d{2}))
该表达式匹配时间字符串如"2025-04-05T12:30",其子组分布如下:
索引匹配内容说明
02025-04-05T12:30完整匹配
12025年份
204月份
305日期
412:30分钟部分整体
530秒数

2.4 实战演练:从HTML标签中提取嵌套内容

在处理网页数据时,常需从复杂的HTML结构中精准提取嵌套内容。本节通过实际案例演示如何结合DOM解析与递归遍历策略,定位目标标签并提取其深层子节点。
使用BeautifulSoup进行嵌套提取

from bs4 import BeautifulSoup

html = """

Title

Paragraph 1

Deep content here

""" soup = BeautifulSoup(html, 'html.parser') target_div = soup.find('div', class_='nested') print(target_div.get_text()) # 输出: Deep content here
该代码利用find()方法定位指定类名的<div>,再通过get_text()提取其全部文本内容,适用于结构清晰的嵌套场景。
递归提取多层结构
  • 遍历所有子节点:.children 或 .descendants
  • 过滤特定标签类型,如仅提取<p>标签
  • 结合CSS选择器实现更灵活匹配

2.5 数组结构可视化:理解多维输出的关键技巧

在处理多维数组时,结构的复杂性常导致数据解读困难。通过可视化手段,可显著提升对嵌套层级、索引关系和数据分布的理解效率。
使用图形化结构表示数组层次
└── Array[3] ├── [0] → [A, B] ├── [1] → [C, D] └── [2] → [E, F]
该树状结构清晰展示了三维数组的嵌套逻辑,便于追踪元素位置。
代码示例:生成带注释的数组输出

// PrintArrayStructure 输出二维字符串数组的结构
func PrintArrayStructure(arr [][]string) {
    for i, row := range arr {
        fmt.Printf("Row %d: ", i)
        for j, val := range row {
            fmt.Printf("[%d:%s] ", j, val) // 标注索引与值
        }
        fmt.Println()
    }
}
此函数逐层遍历二维数组,输出每项的索引与值,帮助开发者直观识别数据排布规律,尤其适用于调试模型输出或API响应。
常见多维数组形态对照表
维度示例应用场景
2D[[1,2],[3,4]]矩阵运算
3D[[[1]],[[2]]]图像通道

第三章:PREG_SET_ORDER模式下的数据重塑

3.1 单次匹配集的独立封装原理

在正则表达式引擎中,单次匹配集的独立封装旨在将一次匹配过程中的状态、结果与上下文完全隔离,确保匹配行为的可预测性与线程安全性。
封装的核心结构
通过对象化设计,将匹配输入、模式、捕获组及位置指针封装为不可变单元。每个匹配实例独立持有其上下文,避免全局状态污染。
type MatchContext struct {
    Input     string
    Pattern   *regexp.Regexp
    Results   []string
    Position  int
}
上述结构体定义了匹配上下文的基本组成。Input 保存原始字符串,Pattern 存储编译后的正则表达式,Results 记录捕获内容,Position 标识当前扫描位置。该设计确保每次匹配调用均在独立实例中进行。
执行流程隔离
  • 初始化时复制输入与模式
  • 匹配过程中不共享结果切片
  • 完成匹配后返回只读视图
此机制有效防止并发访问导致的数据竞争,提升系统稳定性。

3.2 与PREG_PATTERN_ORDER的性能与适用场景对比

在PHP正则表达式匹配中,`preg_match_all` 提供了多种结果排序模式,其中 `PREG_PATTERN_ORDER` 和 `PREG_SET_ORDER` 是两种核心选项。理解它们的差异有助于优化数据提取效率。
输出结构差异
`PREG_PATTERN_ORDER` 按模式分组组织结果:所有完整匹配项先列出,随后是第一个捕获组的所有匹配,依此类推。而 `PREG_SET_ORDER` 按匹配顺序排列,每次匹配作为一个独立数组项。
$pattern = '/(\d+)-(\w+)/';
$subject = '100-abc 200-def 300-ghi';
preg_match_all($pattern, $subject, $matches, PREG_PATTERN_ORDER);

// $matches[0]: ['100-abc', '200-def', '300-ghi']
// $matches[1]: ['100', '200', '300'] (第一捕获组)
// $matches[2]: ['abc', 'def', 'ghi'] (第二捕获组)
上述代码中,`PREG_PATTERN_ORDER` 将相同捕获组的数据集中存储,适合需要按组批量处理的场景,如提取日志中的时间戳或状态码。
性能考量
  • 内存访问局部性:`PREG_PATTERN_ORDER` 在遍历同一捕获组时更高效;
  • 数据重组成本:若需逐条记录处理,`PREG_SET_ORDER` 可减少循环嵌套和索引查找。

3.3 实际案例:日志行批量解析中的应用策略

在处理大规模服务日志时,高效解析成结构化数据是关键步骤。以Nginx访问日志为例,每秒可能产生数千条记录,需通过批量解析提升处理效率。
解析流程设计
采用“读取—分批—解析—输出”流水线模式,利用缓冲机制减少I/O开销。通过固定大小的通道接收原始日志行,触发批量处理逻辑。

func parseBatch(logLines []string) []*AccessLog {
    var results []*AccessLog
    for _, line := range logLines {
        parsed := regexp.MustCompile(`(\S+) - - \[(.*?)\] "(.*?)" (\d+) (\d+)`)
        match := parsed.FindStringSubmatch(line)
        if len(match) == 6 {
            results = append(results, &AccessLog{
                IP:      match[1],
                Time:    match[2],
                Request: match[3],
                Status:  match[4],
                Size:    match[5],
            })
        }
    }
    return results
}
上述代码使用预编译正则表达式批量解析日志行,FindStringSubmatch 提取字段,确保高吞吐下的稳定性。将非匹配行单独记录以便后续分析。
性能优化策略
  • 预分配切片容量,减少内存频繁分配
  • 并发处理多个批次,充分利用多核能力
  • 异步写入下游存储系统,降低阻塞风险

第四章:高级参数与标记对结果的影响

4.1 PREG_OFFSET_CAPTURE标记带来的位置信息扩展

在PHP正则表达式处理中,preg_match 和 preg_match_all 默认仅返回匹配的字符串内容。通过引入 PREG_OFFSET_CAPTURE 标记,可额外获取每个匹配项在原字符串中的起始偏移量。
返回结构的变化
启用该标记后,匹配结果由简单的字符串变为包含两个元素的数组:
  • 索引0:匹配的子串
  • 索引1:该子串在原字符串中的字节偏移位置
实际应用示例
$text = "Contact us at support@example.com or sales@example.org";
preg_match_all('/[a-zA-Z]+@[a-zA-Z]+\.[a-zA-Z]+/', $text, $matches, PREG_OFFSET_CAPTURE);

// 输出每个邮箱及其位置
foreach ($matches[0] as $match) {
    echo "Email: {$match[0]} found at offset {$match[1]}\n";
}
上述代码中,PREG_OFFSET_CAPTURE 使每次匹配都携带位置信息,便于后续文本替换、高亮或语法分析等操作。这种扩展机制显著增强了正则表达式的上下文感知能力,适用于日志解析、关键字定位等场景。

4.2 结合u(UTF-8)修饰符处理多语言文本匹配

在现代Web应用中,正则表达式需支持多语言文本的精准匹配。JavaScript中的`u`修饰符启用Unicode模式,确保对码位大于U+FFFF的字符(如 emojis 或中文汉字)正确解析。
启用Unicode语义匹配
添加`u`标志后,正则引擎将字符串视为UTF-16码元序列,并正确处理代理对:

// 匹配单个emoji字符(需u修饰符)
const regex = /^\p{Emoji}$/u;
console.log(regex.test('🚀')); // true
上述代码使用`\p{Emoji}`属性类匹配表情符号。若无`u`修饰符,该语法会抛出错误。
常见应用场景
  • 国际化用户名验证(支持中文、阿拉伯文等)
  • 多语言内容过滤与关键词提取
  • 处理包含组合字符的文本(如带音标的法语)
通过`u`修饰符,开发者可构建更健壮的国际化文本处理逻辑。

4.3 使用s和m修饰符改变上下文匹配行为

在正则表达式中,`s` 和 `m` 修饰符用于调整元字符对上下文环境的匹配方式,尤其在处理多行文本时发挥关键作用。
单行模式(s修饰符)
启用 `s` 修饰符后,点号 `.` 可以匹配包括换行符在内的任意字符。默认情况下,`.` 不匹配换行符,限制了跨行匹配能力。
/hello.world/s
上述模式能匹配跨越两行的 "hello\nworld"。`s` 消除了行中断的障碍,适用于日志等连续文本分析。
多行模式(m修饰符)
`m` 修饰符改变 `^` 和 `$` 的行为,使其在每一行的起始和结束处生效,而非整个字符串边界。
/^Error/m
可在多行文本中匹配每一行以 "Error" 开头的内容。结合使用 `sm`,可实现强大的上下文感知匹配:
/^Debug: .+?$/sm
该表达式逐行查找以 "Debug:" 开头并以任意内容结尾的完整行,支持跨行点号匹配。

4.4 综合实验:构建支持中文段落提取的正则引擎

需求分析与设计目标
本实验旨在构建一个能精准识别并提取中文自然段落的正则引擎。中文段落通常以句号、问号或感叹号结尾,并可能包含引号、顿号等标点。核心挑战在于区分句子结束与段落结束。
正则模式构建
采用多层匹配策略,结合标点符号与上下文特征:
[\u4e00-\u9fa5()“”‘’《》、,;:?!]+?[。!?]["”」]*\s+(?=[\u4e00-\u9fa5])
该表达式匹配连续的中文字符及常见中文标点,以句末标点结尾,后接空白符并确保后续为中文字符(即新段落开始)。其中: - [\u4e00-\u9fa5()“”‘’《》、,;:?!]+? 非贪婪匹配中文文本; - ["”」]* 允许引号闭合; - \s+ 匹配段落间空白; - 正向先行断言 (?=[\u4e00-\u9fa5]) 确保上下文连贯性。
处理流程图示
输入文本 → 正则匹配 → 提取候选段落 → 上下文验证 → 输出标准段落

第五章:总结与最佳实践建议

持续集成中的自动化测试策略
在现代 DevOps 流程中,自动化测试是保障代码质量的核心环节。建议将单元测试、集成测试与端到端测试嵌入 CI/CD 管道,确保每次提交都能触发完整验证流程。
  • 单元测试应覆盖核心业务逻辑,运行时间控制在秒级
  • 集成测试需模拟真实服务交互,使用容器化环境保证一致性
  • 端到端测试建议采用 headless 浏览器进行关键路径验证
Go 语言微服务的资源管理示例

// 设置 HTTP 超时避免 goroutine 泄漏
client := &http.Client{
    Timeout: 5 * time.Second,
    Transport: &http.Transport{
        MaxIdleConns:        100,
        IdleConnTimeout:     30 * time.Second,
        TLSHandshakeTimeout: 5 * time.Second,
    },
}
生产环境配置检查清单
项目推荐值备注
日志级别error 或 warn避免 info 级别刷屏
连接池大小根据 QPS 动态调整建议设置为数据库最大连接的 70%
监控上报间隔10-30 秒平衡实时性与性能开销
故障排查的黄金信号法

延迟(Latency):请求处理时间分布,关注 P99 值突增

流量(Traffic):每秒请求数或事务量,用于容量规划

错误(Errors):HTTP 5xx 或业务异常计数

饱和度(Saturation):资源利用率如 CPU、内存、磁盘 I/O

php正则表达式preg_match_all(本人收藏的范例) 本人多年收藏的preg_match_all表达式例子 立即下载

相关推荐

2025 居民消费结构数据集(21列,15000条记录)XLSX

详情介绍:该数据集为 2025 年 12 个月、1250 户家庭的平衡面板消费数据,15000 行 ×21 列零缺失,覆盖 31 省、城乡均衡,含八大类消费支出和恩格尔系数(均值 0.293,属富裕区间),家庭月收入均值 8473 元、月支出 6487 元,附完整字段说明 sheet,数据干净规整,非常适合做消费结构分析、面板回归、城乡 / 区域差异对比和收入等级分类预测,但为合成数据、仅 1 年时间跨度,不适合做真实政策研究或长期趋势分析。

php 正则表达式-preg_match/preg_match_all

正则表达式的组成部分 1.定界符 (必须) 通常使用特殊字符组成,常用“/”。 2.原子(必须) 是正则表达式的最基本组成单元,而且在每个模式中最少要包含一个原子。原子是由所有那些未显示指定为元字符的打印和非打印字符组成,具体分为5类。 普通字符作为原子:如a~z,A~Z,0~9。 一些特殊字符和转义后元字符作为原子:\' \* \+ \? \.等。 一些非打印字符作为原子:如:f n ...

不知道起什么名字 2177

django安装mysqlclient (Windows下正确安装mysqlclient)

由于本人也是初学Python和django。本人使用的Python版本是3.7所以连接MySQL数据库需要安装数据驱动,对应Python3的数据驱动是mysqlclient。因此本人习惯性的使用命令pip install mysqlclient,结果安装失败 (venv) C:\Users\songlihui\PycharmProjects\autotest&gt;pip install my...

songlh1234的博客 2万+

php pregmatchall,php preg_match_all()函数介绍与用法

上午写了一篇关于php过滤特殊字符并保留中文,数字以及英文字母的文章,其中就用到了php中的预设函数 preg_match_all(),今天就有小伙件发私信说,能不能简单介绍一下这个 preg_match_all() 函数。查了一些资料,并写成了这篇文章php preg_match_all() 函数preg_match_all():用于执行一个全局正则表达式匹配。语法:intpreg_match...

weixin_42500454的博客 2103

Verilog使用inout信号的方法

在FPGA的设计过程中,有时候会遇到双向信号(既能作为输出,也能作为输入的信号叫双向信号)。比如,IIC总线中的SDA信号就是一个双向信号,QSPI Flash的四线操作的时候四根信号线均为双向信号。在Verilog中用关键字inout定义双向信号,这里总结一下双向信号的处理方法。  实际上,双向信号的本质是由一个三态门组成的,三态门...

qq_41687938的博客 1万+

iPad秒变Mac副屏的隐藏技巧:用BetterDisplay实现无线竖屏+90度锁定

本文详细介绍了如何利用BetterDisplay软件突破苹果原生“随航”(Sidecar)功能的限制,将iPad无线设置为Mac的竖屏副屏,并实现90度方向锁定。通过创建虚拟显示器、配置分辨率与旋转参数,并校准鼠标指针,用户可以高效利用iPad的纵向空间进行文档阅读、编码等工作,显著提升多屏协作效率。

weixin_29266647的博客 603

无涯教程-PHP - preg_match_all()函数

无涯教程网提供preg_match_all() - 语法 int preg_match_all ( string pattern , string string , ar...PREG_SET_ORDER - 将对数组的排序与默认设置有所不同。PREG_PATTERN_ORDER以您认为最合逻辑的方式指定顺序。PHP 中的 preg_match_all()函数 - 无涯教程网。PREG_PATTERN_ORDER - 如果不包括可选的。函数匹配字符串中所有出现的模式。

无涯教程 1358

P4语言实战:如何用Barefoot Tofino实现自定义网络协议(避坑指南)

本文是一份详尽的P4语言实战指南,重点讲解如何利用Barefoot Tofino可编程交换芯片实现自定义网络协议。内容涵盖从P4编程模型解析、自定义协议头定义,到匹配-动作流水线构建、性能优化及生产环境部署的全过程,并特别分享了在资源管理、字节序、调试技巧等方面的宝贵避坑经验,旨在帮助网络开发者和研究人员掌握数据平面编程的核心能力。

echo99的专栏 640

PHP:正则表达式-原子、preg_match_all函数

正则表达式: 1.原子 2.元字符 3.模式修正符 4.正则函数 补充:preg_match_all函数 preg_match_all — 执行一个全局正则表达式匹配 说明 preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, ...

weixin_43731793的博客 554

图文并茂把Ubuntu22.04安装到u盘,实现即插即用

1、刚好打算把Ubuntu安装到u盘,随便记录下整个过程。 2、前提准备:u盘(我的是16g大小),Vmware虚拟机,Ubuntu镜像文件(可以去官网下载); 3、下面记录全过程: 1、打开虚拟机,并选择创建新的虚拟机: 2、选典型: ​ ...

子非鱼 1万+

十一种室内定位传感器方案汇总介绍与对比(机器人、物联网领域)

室内定位传感器方案汇总 目录 室内定位传感器方案汇总 1、定位方案概述 1.1、内定位系统有最基本的5种算法: 1.2、常用的室内定位技术主要包括以下几种: 1.3、定位理论 1.4、不同的定位方案对比 2、各种定位方案详细介绍 2.1、单线激光定位 2.2、多线激光定位: 2.3、视觉定位: 2.4、基于射频识别(RFID)技术室内定位 2.4.1、RFID标签(不涉及...

JK-Cool的博客 3万+

php all函数,PHP 函数 preg_match_all()

语法int preg_match_all (string pattern, string string, array pattern_array [, int order]);定义和用法preg_match_all()函数匹配字符串中出现的所有模式。它将这些匹配数组pattern_array您指定的顺序使用可选的输入参数。可能有两种类型的顺序:- PREG_PATTERN_ORDER 结果排序为$...

weixin_36166714的博客 303

2023华为od机试C卷【启动多任务排序】C++ 实现

一个应用启动时,会有多个初始化任务需要执行,并且任务之间有依赖关系,例如A任务依赖B任务,那么必须在B任务执行完成之后,才能开始执行A任务。现在给出多条任务依赖关系的规则,请输入任务的顺序执行序列,规则采用贪婪策略,即一个任务如果没有依赖的任务,则立刻开始执行,如果同时有多个任务要执行,则根据任务名称字母顺序排序。

MISAYAONE的博客 887

PHP preg_match()、preg_match_all()函数使用与对比

函数都用于在字符串中执行正则表达式匹配。它们的功能相似,但有一些区别。

headmaster_shan的博客 1249

[VT虚拟化驱动]利用EPT实现无痕HOOK

本章利用讲EPT无痕HOOK

吾无法无天的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

preg_match 函数使用及正则表达式各种示例

一、校验数字的表达式 1 数字: 1$ 2 n位的数字: ^\d{n}$ 3 至少n位的数字: ^\d{n,}$ 4 m-n位的数字: ^\d{m,n}$ 5 零和非零开头的数字: ^(0|[1-9][0-9])$ 6 非零开头的最多带两位小数的数字: ^([1-9][0-9])+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数: ^(-)?\d+(.\d{1,2})?$ 8 正数、...

是日已过,命亦随减的博客 2416

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

PHP preg_match_all详解

matches(注意这里是引用)是一个二维数组,matches[0] 是整个pattern匹配的结果。matches[1] 是第一个子模式(正则表达式中的子模式,就是圆括号括起来的部分)匹配的结果,matches是 第二个子模式的匹配结果。注意这个结果的形式,array[0]是整个pattern匹配到的结果,array[1]是pattern中子模式 (.*) 所匹配到的结果。flags 是可省略的,默认值是PREG_PATTERN_ORDER,还可以有其他值,这个会影响matches的内容形式。...

叶落无痕的博客 2457

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

php preg_match 正则表达式 介绍

第一,让我们看看两个特别的字符:‘^’和‘$’他们是分别用来匹配字符串的开始和结束,以下分别举例说明 : "^The": 匹配以 "The"开头的字符串; "of despair$": 匹配以 "of despair" 结尾的字符串; "^abc$": 匹配以abc开头和以abc结尾的字符串,实际上是只有abc与之匹配; "notice": 匹配包含notice的字符

beyondlpf的专栏 2904

PHP教程_PHP5函数preg_match正则表达式匹配

PHP教程 PHP5函数preg_match正则表达式匹配。

goufeng93的博客 1298

php preg_match_all() 用法

preg_match_all() 函数用于进行正则表达式全局匹配,成功返回整个模式匹配的次数(可能为零),如果出错返回 FALSE 。 int preg_match_all( string pattern, string subject, array matches [, int flags ] ) pattern 正则表达式 subject

没有用户名的博客 2552

PHP preg_match()进行正则表达式匹配

preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。 preg_match() 匹配成功一次后就会停止匹配,如果要实现全部结果的匹配,则需使用preg_match_all() 函数。 preg_match (pattern , subject, matches) 参数 描述 pattern

waiwai021的博客 2201

PHP preg_match函数

preg_match(PHP 4, PHP 5)preg_match — 进行正则表达式匹配说明int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。 如果提供了 m

飞鱼 1万+

php preg_match中正则表达式后面的 /u,/s,/i分别是什么意思

/u :表示按照unicode,UTF-8的规则匹配,如汉字的匹配 /i:表示匹配时不区分大小写,如URL的匹配 /s: 表示把字符串视作单行 转载于:https://www.cnblogs.com/DolphWang/p/9287323.html...

weixin_30687051的博客 1055

PHP preg_match正则表达

在php中preg_match()函数是用来执行正则表达式的一个常用的函数,下面我来给大家详细介绍preg_match使用方法。 函数用法 intpreg_match_all ( string pattern, string subject, array matches [, int flags] ) 例1 代码如下 复制代码 preg_match_a...

weixin_30790841的博客 173

php正则表达式之preg_match详解

preg_match 在目标字符串中搜索指定模式(你给的正则表达式),只匹配一次,匹配上了就马上停止搜索返回结果--它的值将是0次(不匹配)或1次。 参数列表: pattern 要搜索的模式 ; subject : 目标字符串; matches:如果提供了参数matches,它将被填充为搜索结果,$matches[0] 为完全匹配的字符串, $matches[1] 匹配的字符串在目标字符串偏移下标; flags:可选PREG_OFFSET_CAPTURE (值256),如果设置为PREG_..

滴水石穿 4241
上一篇: 揭秘krsort与arsort排序行为:你真的了解PHP数组的稳定性吗?
下一篇: memory_limit可以随意调大吗?,资深架构师告诉你线上服务崩溃的真相
simcode
博客等级 码龄14年 154粉丝 2026原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值