preg_match与preg_match_all区别

PHP 正则表达式处理函数详解:preg_match、preg_match_all 和 preg_replace 正则表达式在 PHP 中被广泛应用于字符串匹配和处理。PHP 提供了多个正则表达式处理函数,其中最常用的包括preg_match和。本文将详细介绍这些函数的用法,并提供相应的源代码示例。 阅读详情

定义:

preg_match_all:从左边开始一直到尾部,找出所有匹配的字符串。匹配结果$matches为二维数组,$matches[0]是匹配到的完整结果,$matches[1]是匹配到完整结果的字组。


preg_match:从左边开始,匹配到第一个符合字符串后停止匹配。匹配结果$matches为一维数组,$matches[0]是匹配到的完整结果,$matches[1]是匹配到完整结果的字组。

示例1:

$str = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>";
preg_match_all ("/<b>(.*)<\/b>/", $str, $matches);
print_r($matches);
//返回
preg_match_all:
Array
(
    [0] => Array
        (
            [0] => <b>PHP</b> <br> Title: <b>Programming Language</b>
        )

    [1] => Array
        (
            [0] => PHP</b> <br> Title: <b>Programming Language
        )

)
preg_match:
Array
(
    [0] => <b>PHP</b> <br> Title: <b>Programming Language</b>
    [1] => PHP</b> <br> Title: <b>Programming Language
)

说明:{m,n}、{m,}、?、*、+这类数量修饰符默认会使用贪婪匹配尽可能多的匹配。可在后面增加?符号来使用惰性匹配,比如+?;另外也可用U修饰符达到相同结果,参照示例2。

示例2:

$str = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $str, $matches);
print_r($matches);
//返回
preg_match_all:
Array
(
    [0] => Array
        (
            [0] => <b>PHP</b>
            [1] => <b>Programming Language</b>
        )

    [1] => Array
        (
            [0] => PHP
            [1] => Programming Language
        )

)
preg_match:
Array
(
    [0] => <b>PHP</b>
    [1] => PHP
)

说明:当贪婪匹配时,preg_match_all的$matches[0]与$matches[1]结果只有一个;惰性匹配时,可能存在多个。

示例3:

preg_match_all( "/(\w)+/" , "abc" , $matches);
print_r($matches);
//返回
preg_match_all:
Array
(
    [0] => Array
        (
            [0] => abc
        )

    [1] => Array
        (
            [0] => c
        )

)
preg_match:
Array
(
    [0] => abc
    [1] => c
)

说明:因为数量修饰符为+属于贪婪匹配,会尽可能多的匹配,所以完整匹配结果为abc;子组为(\w),只会捕获最后一个,所以子组的匹配结果为c。

PHP函数preg_match_all正则表达式的基本使用详细解析 通过提供源代码示例,演示了如何使用preg_match_all函数匹配字符串中的所有满足正则表达式模式的子字符串。在实际开发中,我们可以根据具体需求,灵活运用preg_match_all函数来处理字符串匹配和提取的任务。其中,preg_match_all函数是一个强大的工具,用于在一个字符串中匹配所有满足指定正则表达式的子字符串。通过上述示例,我们可以看到preg_match_all函数在匹配字符串时的强大功能。它不仅可以用于简单的字符串匹配,还可以处理更复杂的模式,提取所需的信息。 阅读详情

相关推荐

全差分运放+开关电容共模反馈

设计一种CMOS全差分折叠式共源共栅结构的运放,其共模反馈用的是开关电容(SC-CMFB)。 下面分别是主运放、偏置电路和开关电容共模反馈电路图 在设计时碰到的问题: 1、增益怎么测? 2、输出波形不平滑? 3、开关的时序频率设置多高? 解答: 1、先设计好主运放和偏置电路,使得运放的输出接近VDD/2,且主运放的管子都工作在饱和区,然后再参考何乐年的《模拟集成电路设计与仿真》仿增益。 2、增益仿完后,仿真瞬态,看电路的工作情况,于是将偏置电路上接Vb4与主运放断开,接到共模反馈上的Vbia上,然后就

qq_36686804的博客 1万+

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

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

headmaster_shan的博客 1249

Win7/Win10双系统兼容指南:Arduino IDE 1.8.19与2.3.2的安装避坑全攻略

本文详细解析了在Win7/Win10双系统环境下安装和配置Arduino IDE 1.8.19与2.3.2版本的完整指南,特别针对ESP32开发环境的深度配置和COM端口常见问题提供了实用解决方案。通过版本对比、安装优化和性能调优,帮助开发者高效搭建稳定的物联网开发环境。

weixin_30500105的博客 187

无涯教程-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

UE5音效系统全解析:从Sound Cue到MetaSounds的实战指南

在游戏开发中,音频系统是构建沉浸式体验的关键技术之一。其核心原理在于通过数字信号处理(DSP)和空间音频渲染,模拟真实世界的听觉感知。传统音频管线通常基于静态资源播放与混合,而现代引擎则引入了程序化音频生成与动态调制技术,这极大地提升了音频的互动性与表现力,使其能够实时响应游戏状态变化。这一技术革新对于开发开放世界、VR及3A级游戏尤为重要,它能实现风吹草动皆有不同声响、音效随环境动态变化的细腻效果。本文聚焦虚幻引擎5(UE5)的音效系统,深入剖析其新旧两套核心架构:稳定高效的Sound Cue、Sound

weixin_31179927的博客 333

Python模拟发送SOME/IP消息(Scapy模块)

SOMEIP提供服务、订阅、响应、通知等Python代码示例

liluo0815481的博客 3068

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

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

goufeng93的博客 1298

Windows 10 下 Nacos 3.0.2 单机版保姆级安装教程(含JDK 17配置与MySQL 8.0连接避坑)

本文提供Windows 10下Nacos 3.0.2单机版的详细安装教程,涵盖JDK 17配置、MySQL 8.0连接优化及生产级安全设置。通过步骤详解和常见问题解决方案,帮助开发者快速完成Nacos的安装与配置,确保服务发现与配置管理的高效运行。

weixin_29237635的博客 320

浅谈preg_match与preg_match_all区别

preg_match和preg_match_all都是用来匹配正则表达式,哪么两者之间有什么区别呢?preg_match ( string pattern, string subject [, array matches [, int flags]] ); string pattern是用来书写正则表达式,string subject 是要匹配的内容,array matches 是匹配的结果。pr

5件事blog 1117

【ERROR】ERROR1: PROJ: proj_create_from_database: Cannot find proj.db - 环境变量配置与路径修复指南

本文详细解析了地理空间数据处理中常见的【ERROR】ERROR1: PROJ: proj_create_from_database: Cannot find proj.db 错误。该错误的根源是PROJ库无法定位其核心数据文件proj.db。文章提供了从问题诊断到修复的完整指南,包括如何在不同系统(Windows/macOS/Linux)和安装方式(Conda/pip/源码编译)下找到正确的proj.db文件路径,并通过设置PROJ_LIB环境变量(临时、代码内或永久)彻底解决问题,同时给出了进阶排查技巧和

m2n3o4p5的博客 557

基于A*算法的二维栅格地图路径规划与避障MATLAB仿真

本文将介绍如何使用MATLAB编写基于A*算法的二维栅格地图路径规划与避障的仿真程序。我们可以使用二维数组表示地图,其中每个元素表示一个栅格的状态,例如1表示障碍物,0表示可行走区域。接下来,我们需要定义A*算法的节点类。G值表示从起始节点到当前节点的代价,H值是启发式函数估计的从当前节点到目标节点的代价。算法,我们可以有效地找到起始点到目标点的最短路径,并在仿真中进行可视化展示。算法的基本思路是从起始节点开始,按照一定的启发式函数选择下一个节点,直到找到目标节点或者遍历完所有可行走区域。

ByteWhizX的博客 1273

使用preg_match和preg_match_all的区别

preg_match只匹配一次preg_match_all是全文匹配,即所有跟表达式一致的都找出来。  例如:1.匹配字符串在规则中的所有字符:2preg_match_all("/(\w)+/","abc",$abc);print_r($abc);显示的结果为:1234Array(      [0] = Array ( [0] = a [1] = b [2] = c )       [1] = A...

wjn2000414的博客 4475

TC3XX - MCAL知识点(二十):CAN MCAL配置及代码实战(CAN/CANFD/extenen CAN)

CAN驱动程序负责提供AUTOSAR指定的标准CAN通信服务。M_CAN单元是底层的CAN硬件单元,它由共享消息RAM(在AUTOSAR中称为硬件对象)的节点(在AUTOSAR中称为控制器)组成。CAN驱动提供以下服务:·初始化CAN控制器以控制CAN控制器的行为和状态·设置和修改CAN控制器的波特率配置·支持CAN和CAN FD帧的收发·在轮询和中断模式下,成功的帧传输通知,专用和FIFO消息的接收和总线事件通知·数据接收使用接收FIFO功能·假装网络模式处理·支持多读/写周期功能。

梦想技术家 3940

preg_match 与 preg_match_all 区别

正则匹配在php用的还挺多的,应该有相对一部分的都不知道preg_match 与 preg_match_all 的区别吧 以下我们开始讲解一下这两个的区别 preg_match 只匹配一次,preg_match_all是全文匹配,即所有跟表达式一致的都找出来。 以下我们看案例   1、取出符号里的字符。preg_match_all("/(\w)+/","abc",$search);  ...

行走天下 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

preg_match和preg_match_all的区别

<br />preg_match只匹配一次,preg_match_all是全文匹配<br />preg_match 字符串比对解析。<br />语法: int preg_match(string pattern, string subject, array [matches]);<br />返回值: 整数/数组<br />函数种类: 资料处理<br />内容说明: 本函数以 pattern 的规则来解析比对字符串 subject。比对结果返回的值放在数组参数 matches 之中,matches[0] 内容

xiao's Blog 2728

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

php中preg_match和preg_match_all的区别

最近公司要用php

molaifeng的专栏 1958

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

php ereg preg_match,PHP中ereg与preg_match和preg_match_all函数的区别

今天查找资料了解了下ereg、preg_match和preg_match_all三个正则表达函数的用法及区别,下面简单解释说明,并举以实例,最后另附上一个使用正则表达式验证中文字符串的方法。PHP中几个正则函数的用法及区别函数用法:preg_match(mode, string subject, array matches); 相比ereg更加规范,执行效率越高ereg(mode, string ...

weixin_29332623的博客 254

preg_match_all 和 preg_replace 区别

preg_replace是用来替换 类似性的有规律性的内容的,str_replace是用来 替换 已知的 内容的,可以是有规律的也可以是没有规律的,替换的值 由你手动写的。preg_match_all 和 preg_replace 的区别简单说 是两个用法相反的字符串替换函数;str_replace 区分大小写 str_ireplace 不区分大小写。在字符串替换的函数里,str_replace()的使用率是最高的。注:str_replace在php4里 无法使用。

豫迷糊的码上生活 1131

php中preg_match()和preg_match_all()的区别

区别在于后者多了一个all, 你即已经知道了preg_match()是干嘛的,那么,就知道了preg_match_all()是干嘛的。 先说第一个吧。 这里有三个参数,preg_match(规则,被规则潜的对象, 返回的结果); 比如,我们有一个潜规则,比如你是一个演员,你要想演电影,必须被导演哔。返回的结果就是0和1.被哔就是1,有结果,是吧,就是1。没被哔就是0.都上床了发现不能为了梦

鱼火 1190

php中ereg() ,preg_match() 与preg_match_all的区别?代码详细比较

PHP中几个正则函数的用法及区别函数用法:preg_match(mode, string subject, array matches); 相比ereg更加规范,执行效率越高ereg(mode, string subject, array regs);mode:正则表达式(preg_match中的mode必须以’/'开始和“/”结束)subject: 需要验证的字符串matchs/regs: 匹配...

weixin_34419326的博客 99

php中文字符串提取方法,preg_replace 和preg_match_all区别

如果函数 preg_replace() 搜索到匹配项,则会返回被替换后的 $subject,否则返回没有改变的 $subject。preg_replace() 函数的每个参数(除了参数 $limit)都可以是一个数组。preg_match_all() 函数可以返回 pattern 的匹配次数(可能是 0),如果发生错误则返回 FALSE。如果 $subject 是一个数组,preg_replace() 函数会返回一个数组,其他情况下返回一个字符串。join() 函数是 implode() 函数的别名。

企业级技术与网站app运营 1613

preg_match_all中第四个参数PREG_PATTERN_ORDER,PREG_SET_ORDER,PREG_OFFSET_CAPTURE之间的区别

echo ""; $str = "asdf{title}asdf{author}sadf{con}asfasdfasdfasf"; $mode = "/{(.*)}/U"; $flags1 = PREG_PATTERN_ORDER;       //整个数组是二维数组,$arr1[0]是包括边界所构成匹配字符串的数组,$arr1[1]除去边界所构成的匹配字符串的数组; preg_match_all

fashion_luo的专栏 5311

php正则函数preg,php中preg正则函数使用_PHP教程

php中preg正则函数使用1.preg_match和preg_match_all的区别preg_match和 preg_match_all区别是preg_match只匹配一次。而preg_match_all全部匹配,直到字符串结束。例:string 'abcde' (length=5)array (size=1)0 =>array (size=3)0 => string 'abcde...

weixin_29599033的博客 435

preg_match、preg_match_all使用注意点

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

手瓜 1056
上一篇: 解决github访问慢的问题
下一篇: self与static、get_class()与get_called_class()区别
两份煲仔饭
博客等级 码龄11年 2粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值