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

C#如何精准提取Json::$product->后的目标字段?

提取PHP代码中Json::$product->后的目标字段方案

原正则的问题

你之前的正则有两个核心问题:

  • 转义错误:C#字符串里$只需单次转义,写成\\$product会匹配字面量的\$product,而非你需要的$product
  • 匹配逻辑宽泛:用\S*会捕获多余的前后内容,无法精准定位目标字段

精准提取的正则方案

根据你描述的目标字段格式(大写字母、下划线、数字组成),用以下正则可以精准捕获:

var matches = Regex.Matches(str, @"Json::\$product->([A-Z_0-9]+)", RegexOptions.IgnoreCase);

其中([A-Z_0-9]+)是捕获分组,专门匹配目标字段,会自动停在分号、括号、空格等非字段字符前。

提取处理代码

遍历匹配结果,直接取分组1的内容即可得到目标字段:

foreach (Match match in matches)
{
    string targetField = match.Groups[1].Value;
    MessageBox.Show(targetField); // 输出MILK、PETIBOR_BISCUIT等目标字段
}

兼容更多格式的优化方案

如果目标字段可能包含小写字母,或者格式不确定,可以调整正则为:

// 用负向断言确保字段后不是字母数字下划线,避免捕获多余内容
var matches = Regex.Matches(str, @"Json::\$product->(\w+)(?!\w)", RegexOptions.IgnoreCase);

内容的提问来源于stack exchange,提问作者Habip Oğuz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:31:11