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

C#中使用正则表达式批量为指定字符串两端加*号实现高亮

C# 批量关键词正则高亮实现方案

实现代码

场景1:匹配任意位置的关键词(适配你给出的输入输出示例)

如果不需要限制关键词为独立单词,只要子串匹配就高亮,使用以下代码:

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

// 你的输入文本
string inputText = "dsadf335aa";
// 待高亮的关键词列表
List<string> highlightTargets = new List<string> { "123", "234", "335" };

// 处理关键词:转义正则元字符,避免关键词含.、*、?等特殊字符时匹配异常
IEnumerable<string> escapedTargets = highlightTargets.Select(t => Regex.Escape(t));
// 拼接正则匹配规则
string matchPattern = string.Join("|", escapedTargets);
// 执行替换:$&为正则内置占位符,代表匹配到的原始内容
string result = Regex.Replace(inputText, matchPattern, "*$&*");

执行后result的值为dsadf*335*aa,符合预期输出。

场景2:仅匹配独立单词

如果需要关键词前后为单词边界(前后不能出现字母、数字、下划线),只需要修改匹配规则即可:

// 用捕获组包裹关键词列表,前后加单词边界限制
string matchPattern = @"\b(" + string.Join("|", escapedTargets) + @")\b";

占位符识别异常问题说明

C# Regex.Replace的替换模板中,引用匹配内容需要使用正则内置的占位符:

  • $&:代表整个正则表达式匹配到的完整内容
  • $1:代表第一个捕获组匹配到的内容
    不存在{s}这类占位符写法,替换为标准的$&即可正常识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:06:04