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

如何提取CSS文件中的所有颜色?现有代码仅提取前2个,求循环方案

提取CSS文件中所有颜色的C#解决方案
  • 使用 Regex.Matches 替代 Regex.Match,后者仅返回第一个匹配项,前者会返回所有符合规则的匹配结果
  • 合并正则表达式,同时匹配 color 和 background-color 属性,简化代码逻辑
  • 通过 foreach 循环遍历所有匹配项,收集全部颜色值

修正后的代码:

private void btnLoadFile_Click(object sender, EventArgs e)
{
    OpenFileDialog openFileDialog1 = new OpenFileDialog();
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string cssString = File.ReadAllText(openFileDialog1.FileName);
        // 匹配color和background-color属性的颜色值,忽略大小写
        string pattern = @"(color|background-color):\s*(.+?);";
        MatchCollection matches = Regex.Matches(cssString, pattern, RegexOptions.IgnoreCase);
        
        List<string> allColors = new List<string>();
        foreach (Match match in matches)
        {
            // 提取第二个捕获组的颜色值并去除首尾空白
            string colorValue = match.Groups[2].Value.Trim();
            allColors.Add(colorValue);
        }
        
        // 示例:将收集到的颜色输出到控制台
        foreach (string color in allColors)
        {
            Console.WriteLine(color);
        }
    }
}

关键说明

  • Regex.Matches 返回的 MatchCollection 包含所有匹配的结果,解决了原代码只能获取前2个颜色的问题
  • 正则表达式中的 \s* 适配属性名与冒号之间的空白字符,RegexOptions.IgnoreCase 兼容大小写不同的属性写法
  • foreach 循环是遍历匹配集合的最直接方式,逐个提取颜色值并存储

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:25:19