You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP正则匹配controllers => factories范围内的嵌套配置内容

正则修改方案

你可以使用调整后的正则表达式,实现仅匹配controllers =>数组范围内的factories段:

'controllers' => (\[(?:[^][]++|(?1))*])(?s:.*?)('factories' => (\[(?:[^][]++|(?3))*]))

原理解释

  • 先通过递归分组(\[(?:[^][]++|(?1))*])精准匹配'controllers' =>对应的完整嵌套数组,锁定父容器的边界范围
  • 中间的(?s:.*?)惰性匹配父容器内controllers数组起始位置到factories键之间的所有内容,不会跳出父容器边界
  • 后半段沿用你原有逻辑递归匹配factories对应的嵌套数组,第2个捕获组就是完整的'factories' => [...]目标内容,第3个捕获组为factories数组的内部内容

适配说明

  • 该正则兼容PCRE正则引擎,和你现有使用场景的引擎匹配
  • 如果配置文件中存在注释、特殊转义字符,可以在[^][]规则中额外补充需要过滤的字符规则即可

你之前的正则未增加父容器范围约束,会全局扫描所有factories键对应的数组段,修改后增加了父容器锚定和范围限制,不会命中外层的同名字段。

内容的提问来源于stack exchange,提问作者divix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:54:07