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

PHP正则表达式需求:匹配TEST_与G_间0-4位数字后的内容

正则表达式解决方案

问题分析

需要匹配TEST_和G_之间包含0到4位数字的字符串,并提取G_之后的所有内容。原正则(?<=TEST_[0-9]{0,4}G_).*报错,核心原因是多数正则引擎不支持可变长度的后行断言(即(?<=...)内部不能使用{0,4}这类可变长度量词)。

可行方案

方案1:使用捕获组(推荐,兼容性最好)

用捕获组替代后行断言,几乎所有正则引擎都支持:

TEST_\d{0,4}G_(.*)
  • 匹配逻辑:先匹配TEST_,接着匹配0-4位数字,再匹配G_,最后把G_之后的所有内容捕获到第1个分组中。
  • 使用方式:提取匹配结果的第1个捕获组内容即可。比如对ABC_TEST_20G_a123-abc1,捕获组内容为a123-abc1;对ABC_TEST_100G_abc1,捕获组内容为abc1。

方案2:固定长度分支的后行断言(仅当必须用纯匹配结果时使用)

如果场景要求直接返回匹配结果而非捕获组,可以把可变长度拆分为多个固定长度的分支,兼容不支持可变长度后行断言的引擎:

(?<=TEST_G_|TEST_\dG_|TEST_\d{2}G_|TEST_\d{3}G_|TEST_\d{4}G_).*
  • 匹配逻辑:枚举TEST_和G_之间0位、1位、2位、3位、4位数字的所有情况,每个分支都是固定长度,符合后行断言的长度要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:55:17