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

.NET C# 如何编写正则同时匹配[keyb]、[keyb2]两类标签包裹的内容

C# .NET 正则匹配多类标签内容解决方案

调整方案说明

你原有的正则存在未转义方括号的问题,[]在正则中是字符组元字符,匹配字面量方括号需要加\转义。调整后可同时匹配keyb和keyb2两类标签,有两种实现方式可选:

方式1:简单适配(仅匹配指定两类标签)

直接利用可选量词?匹配标签名末尾可选的2,代码如下:

Regex regex = new Regex(@"(?<=\[keyb2?\])(.*?)(?=\[/keyb2?\])", RegexOptions.Singleline);

参数说明:

  • 加RegexOptions.Singleline是为了让.可以匹配换行符,支持提取多行包裹的内容,如果仅需匹配单行内容可以去掉该参数。
  • 该写法可以正常匹配你给出的测试输入:[keyb]hello budy[/keyb] [keyb2]bye buddy[/keyb2],会分别提取到hello budy和bye buddy两个结果。

方式2:严格匹配前后标签对应(推荐)

避免出现[keyb]xxx[/keyb2]这类标签不匹配的错误内容被提取,通过后向引用确保前后标签一致:

Regex regex = new Regex(@"\[(?<tag>keyb2?)\](.*?)\[/\k<tag>\]", RegexOptions.Singleline);

提取内容时取第二个捕获组(索引为2的组)的值即可,示例调用代码:

string input = "[keyb]hello budy[/keyb] [keyb2]bye buddy[/keyb2]";
MatchCollection matches = regex.Matches(input);
foreach (Match match in matches)
{
    // 输出提取到的内容
    Console.WriteLine(match.Groups[2].Value);
}

运行上述代码会依次输出:

hello budy
bye buddy


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 12:54:05