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

.NET C#正则表达式:提取字符串前两段内容的方法

提取下划线分隔字符串前两段的C#正则方案

刚好碰到过类似的需求,这就给你梳理清楚怎么实现:

核心正则表达式

我们需要匹配字符串开头到第二个下划线之前的所有内容,对应的正则模式是:

^[^_]+_[^_]+

模式拆解:

  • ^:锚定到字符串的起始位置,确保我们从开头开始匹配
  • [^_]+:匹配任意非下划线的字符,至少出现1次(这就是第一段内容)
  • _:精确匹配第一个下划线分隔符
  • [^_]+:再次匹配任意非下划线字符,至少1次(这就是第二段内容)

C# 代码示例

下面是完整的使用示例,批量处理你的输入字符串:

using System;
using System.Text.RegularExpressions;

class StringExtractor
{
    static void Main()
    {
        // 你的输入字符串集合
        string[] inputList = { "abc_f25f_xxxxx.gif", "vcvbn_te4we_dsfg", "q12_f4wse_brff" };
        // 正则模式(用@避免转义字符问题)
        string regexPattern = @"^[^_]+_[^_]+";

        foreach (string input in inputList)
        {
            Match resultMatch = Regex.Match(input, regexPattern);
            if (resultMatch.Success)
            {
                Console.WriteLine($"原始字符串:{input} → 提取结果:{resultMatch.Value}");
            }
            else
            {
                Console.WriteLine($"警告:字符串「{input}」不符合格式要求,无法提取");
            }
        }
    }
}

运行输出

执行这段代码后,你会得到:

原始字符串:abc_f25f_xxxxx.gif → 提取结果:abc_f25f
原始字符串:vcvbn_te4we_dsfg → 提取结果:vcvbn_te4we
原始字符串:q12_f4wse_brff → 提取结果:q12_f4wse

如果你的输入字符串有可能存在不足两段的情况(比如只有一段或没有下划线),上面的代码也会通过resultMatch.Success进行判断,避免报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:19:03