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

C#中使用正则表达式为不含OBSBOT的句子添加前缀

在C#中用正则表达式实现条件添加前缀(避免重复)

要解决仅给不含OBSBOT的句子添加前缀,已包含的句子不修改的问题,核心是用正则的负向预查精准匹配目标行,同时开启多行模式支持多句子输入。

正则方案

使用以下正则模式和替换规则:

  • 正则模式:^(?!.*OBSBOT).+$
  • 替换字符串:OBSBOT $0

模式解释:

  • ^:匹配每行的开头(需配合Multiline选项生效)
  • (?!.*OBSBOT):负向预查,断言当前行首之后的任意位置都不存在OBSBOT字符串
  • .+$:匹配整行内容(直到行尾)
  • $0:替换时引用匹配到的整行原内容

C# 代码实现

using System.Text.RegularExpressions;

string input = @"UVC to HDMI Adapter
OBSBOT HQ Mic
Remote controller for Tiny 4K
HQ Mic OBSBOT
HQ OBSBOT Mic";

// 正则规则:匹配不含OBSBOT的行,在开头添加前缀
string regexPattern = @"^(?!.*OBSBOT).+$";
string replacementText = "OBSBOT $0";

// 开启Multiline选项,让^和$匹配每行的首尾而非整个字符串的首尾
string output = Regex.Replace(input, regexPattern, replacementText, RegexOptions.Multiline);

验证结果

执行后输出与预期完全一致:

OBSBOT UVC to HDMI Adapter
OBSBOT HQ Mic
OBSBOT Remote controller for Tiny 4K
HQ Mic OBSBOT
HQ OBSBOT Mic

重复添加问题的原因

之前的写法未加入(?!.*OBSBOT)负向预查,导致不管行内是否已有OBSBOT,都会匹配行首并添加前缀,最终出现重复内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:52:50