.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
相关产品推荐
相关产品推荐

