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

如何从字符串中提取特定Unicode字符并保存至数组或列表?

提取字符串中的HTML Unicode实体

你之前用Split的方式之所以会混入"test",是因为Split是按指定分隔符把整个字符串拆成片段,那些非实体的文本自然会被拆出来。要精准提取&#数字;格式的Unicode实体,用正则表达式是更合适的方案。

直接上可用的C#代码:

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

class Program
{
    static void Main()
    {
        string input = "test 🔷 test 💙 test 🔹";
        // 匹配&#开头、数字内容、;结尾的实体
        Regex regex = new Regex(@"&#\d+;");
        MatchCollection matches = regex.Matches(input);
        
        // 转换成List<string>
        List<string> emojiEntities = new List<string>();
        foreach (Match match in matches)
        {
            emojiEntities.Add(match.Value);
        }
        
        // 或者转换成数组
        string[] emojiArray = Array.ConvertAll(matches.Cast<Match>().ToArray(), m => m.Value);
        
        // 验证结果
        foreach (var item in emojiEntities)
        {
            Console.WriteLine(item);
        }
    }
}

代码说明:

  • 正则模式@"&#\d+;":&#匹配实体开头,\d+匹配一个或多个数字,;匹配实体结尾,精准锁定你要的Unicode实体格式。
  • Regex.Matches会返回所有符合模式的匹配结果,不会包含无关的"test"文本。
  • 可以根据需求把匹配结果转成List<string>或者数组,方便后续遍历操作。

如果你的实体里可能包含十六进制数字(比如&#x1F600;这种),可以把正则改成@"&#(?:\d+|x[0-9A-Fa-f]+);",这样就能同时匹配十进制和十六进制的HTML实体了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:52:02