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

如何在C#中提取字符串中的<<占位符>>并拆分输出列表

C# 实现提取占位符并拆分文本

解决方案

使用正则表达式匹配占位符和普通文本段,将每个匹配结果单独输出为一行。正则模式会准确识别<<...>>格式的占位符,同时保留原文本中的换行符、空格等所有字符。

代码示例

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        // 原始输入字符串(硬编码时用@前缀保留转义字符)
        string input = @"My name is <<yourName>> and I am working in the <<Team Name>> team\n as a <<yourTitle>>.";
        // 若原始字符串中的\n是文本形式而非转义,可执行此替换转为实际换行
        input = input.Replace(@"\n", Environment.NewLine);

        // 正则模式:匹配占位符 或 占位符之外的所有文本(含换行)
        string pattern = @"<<.*?>>|[\s\S]+?(?=<<|$)";
        MatchCollection matches = Regex.Matches(input, pattern);

        // 遍历匹配结果并逐行输出
        foreach (Match match in matches)
        {
            string line = match.Value.TrimEnd('\r', '\n');
            Console.WriteLine(line);
        }
    }
}

正则模式说明

  • <<.*?>>:匹配<<开头、>>结尾的占位符,.*?采用非贪婪匹配,确保不会覆盖多个占位符。
  • [\s\S]+?(?=<<|$):匹配任意字符(包括换行符\r/\n),直到遇到下一个占位符<<或字符串结束。+?非贪婪模式避免过度匹配。

适配需求

  • 支持占位符内包含空格(如<<Team Name>>)
  • 完整保留原字符串中的换行符、空格等字符
  • 兼容任意内容的占位符(无预定义限制)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:46:15