Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php正则贪婪和懒惰匹配(正则非贪婪匹配)

作者:青灯寂焚   发布日期:2025-08-24   浏览:144

在PHP中,正则表达式默认是贪婪匹配的,即尽可能多地匹配符合条件的字符。但是可以通过在量词后面添加一个问号(?)来实现非贪婪匹配,也叫懒惰匹配。

下面是一个例子,演示了贪婪匹配和懒惰匹配的区别:

$str = "abc123def456";
// 贪婪匹配
preg_match("/\d+/", $str, $matches);
echo $matches[0]; // 输出:123456

// 懒惰匹配
preg_match("/\d+?/", $str, $matches);
echo $matches[0]; // 输出:1

在上面的例子中,正则表达式\d+表示匹配一个或多个数字。在贪婪匹配中,正则引擎会尽可能多地匹配数字,因此结果是123456。而在懒惰匹配中,正则引擎会尽可能少地匹配数字,因此结果是1。

需要注意的是,懒惰匹配只对量词(如+*?{n}等)有效,对于其他部分的正则表达式,如字符类、分组等,懒惰匹配不起作用。

上一篇:php 数组按字典排序(php数组排序sort)

下一篇:php查询界面设计(php设计登录界面)

大家都在看

php session用法

php 定义常量

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 判断是否为空

php 拆分字符串

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站