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

如何在C#中获取Font Awesome所有图标类名并生成列表或数组

方案对比与最优实现推荐

两种提取方案的优劣对比

  • 从CSS文件提取:更稳定、准确率更高,是首选方案。Font Awesome的CSS文件里所有图标类名都是固定格式,没有动态渲染的内容,提取逻辑简单,不会因为页面结构更新出错。
  • 从速查表页面提取:不推荐,页面内容是前端动态渲染的,直接爬取静态HTML拿不到完整的图标列表,需要处理JS渲染逻辑,而且官方页面结构更新的话提取逻辑就会失效,维护成本高。

具体实现步骤(CSS提取方案)

第一步:准备CSS文件

下载Font Awesome v5的本地CSS文件(比如all.min.css或者单独的font-awesome.css),直接本地处理即可。

第二步:匹配规则设计

用正则匹配所有符合规则的图标类名,匹配规则可以用fa-[\w-]+,匹配后过滤重复类名即可。

第三步:代码示例

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;

class FontAwesomeIconExtractor
{
    static void Main()
    {
        // 替换为你的Font Awesome CSS文件本地路径
        string cssFilePath = @"C:\local\path\font-awesome.min.css";
        string cssContent = File.ReadAllText(cssFilePath);
        
        // 正则匹配所有fa-开头的图标类名
        var regex = new Regex(@"fa-([a-z0-9-]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
        var matches = regex.Matches(cssContent);
        
        // 去重后存入List
        List<string> iconClassNames = matches
            .Cast<Match>()
            .Select(m => m.Value)
            .Distinct()
            .ToList();
        
        // 若需要带样式前缀(比如fas fa-xxx)可自行拼接
        // List<string> fullClassNames = iconClassNames.Select(c => $"fas {c}").ToList();
        
        Console.WriteLine($"共提取到{iconClassNames.Count}个图标类名");
    }
}

注意事项

如果只需要特定风格的图标,可以在匹配后过滤对应的前缀类即可,比如品牌图标前缀是fab、实心图标前缀是fas、空心图标前缀是far,按需筛选即可。

内容的提问来源于stack exchange,提问作者monika-115

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:15:04