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

求VS2019中匹配含指定单词但不含特定单词的Regex正则表达式

正则表达式解决方案

针对你的需求,可使用以下正则表达式配合.NET的Regex类实现判断:

^(?=.*(hello|hi))(?!.*(bye|again)).*$

关键说明:

  • 需启用Singleline模式(RegexOptions.Singleline),让.能匹配换行符,确保跨行文本也能被正确检查
  • 各部分作用:
    • ^:匹配文本起始位置
    • (?=.*(hello|hi)):正向预查,确保文本中存在hello或hi的子串(无需独立成词)
    • (?!.*(bye|again)):负向预查,确保文本中不存在bye或again的子串(只要出现包含该子串的内容就会匹配失败)
    • .*$:匹配从起始到结束的全部文本内容

VS2019中C#使用示例:

string inputText = File.ReadAllText("你的文本文件路径");
string regexPattern = @"^(?=.*(hello|hi))(?!.*(bye|again)).*$";
bool isMatch = Regex.IsMatch(inputText, regexPattern, RegexOptions.Singleline);

// 输出结果
Console.WriteLine(isMatch ? "匹配成功" : "匹配失败");

扩展说明:

  • 如果需要忽略大小写(比如匹配Hello或HI),可添加RegexOptions.IgnoreCase选项:
    bool isMatch = Regex.IsMatch(inputText, regexPattern, RegexOptions.Singleline | RegexOptions.IgnoreCase);
    
  • 子串匹配逻辑符合需求:比如byebye或byeabc会被识别为包含bye,导致匹配失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:45:33