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

如何使用C#正则表达式提取尖括号<>间的字符串?

在C#中使用正则表达式提取尖括号<>之间的字符串

没问题!既然你已经掌握了提取双引号内容的正则,那提取尖括号里的内容逻辑其实非常相似,咱们直接看解决方案和细节:

核心正则表达式

你可以用这个正则来匹配尖括号间的内容:

<([^>]*)>

逻辑拆解(和你熟悉的双引号正则对比)

你之前用的"""([^"]*)"""是匹配双引号间的内容,逻辑是:

  • " 匹配左双引号
  • ([^"]*) 捕获任意不是右双引号的字符(零个或多个)
  • " 匹配右双引号

而尖括号的正则只是把双引号换成了尖括号:

  • < 匹配左尖括号(不需要转义,在正则里它不是特殊元字符)
  • ([^>]*) 捕获任意不是右尖括号的字符(这部分和双引号的逻辑完全一致)
  • > 匹配右尖括号

C# 代码示例

下面是完整的C#代码,演示如何从字符串中提取所有尖括号内的内容:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        // 示例输入字符串
        string targetString = "请发送邮件到<myname@11.com>,或者联系<admin@company.org>";
        
        // 正则模式(用@符号避免C#字符串的转义问题,更简洁)
        string regexPattern = @"<([^>]*)>";
        
        // 提取所有匹配项
        foreach (Match match in Regex.Matches(targetString, regexPattern))
        {
            // Groups[1] 对应正则里的捕获组,也就是尖括号内的内容
            // Groups[0] 是整个匹配的<xxx>字符串,不是我们要的
            Console.WriteLine("提取到的内容: " + match.Groups[1].Value);
        }
    }
}

运行这段代码,输出会是:

提取到的内容: myname@11.com
提取到的内容: admin@company.org

注意事项

  • 如果你的字符串中存在嵌套的尖括号(比如<outer<inner>>),这个简单正则就会失效,因为[^>]*会匹配到第一个>就停止。这种复杂场景需要递归正则,但大部分日常场景里,上面的正则已经足够用了。
  • 如果你只需要提取第一个匹配的内容,可以用Regex.Match()代替Regex.Matches(),然后判断match.Success后再取Groups[1].Value。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:20:39