2026-03-18 PHP正则魔法:用preg_replace实现智能文本递减替换 PHP正则魔法:用preg_replace实现智能文本递减替换 正文:在日常的文本处理中,我们经常会遇到需要将重复出现的模式进行有序递减的情况。比如将"标题1、标题1、标题1"替换为"标题1、标题2、标题3"。这种需求在批量生成文档、自动化报表等场景尤为常见。PHP的preg_replace函数配合正则表达式的捕获组和反向引用,可以优雅地解决这类问题。首先让我们看一个基础示例。假设我们需要将字符串中连续出现的"第X节"模式进行自动编号:$text = "第1节 第1节 第1节"; $result = preg_replace_callback('/第(\d+)节/', function($matches) { static $count = 0; return "第" . ($matches[1] + $count++) . "节"; }, $text); // 输出:第1节 第2节 第3节 这个简单的例子展示了基本的递增逻辑,但实际工作中我们往往需要更复杂的处理。比如处理嵌套结构的文本递减:$pattern = '/((第)(\d+)(章))((.*?)\3\4)+/'; $text = "第1章 内容A 第1章 内容B 第... 2026年03月18日 48 阅读 0 评论