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

如何检测字符串包含指定单词、忽略特殊字符且保留原句内容

实现方案

核心逻辑:仅在匹配判断环节对原句做临时特殊字符过滤,匹配成功后直接返回未修改的原句即可。

步骤1:实现特殊字符清理的辅助方法

你可以根据需求自定义要忽略的字符,示例中我们过滤逗号、货币符号、句号等非数字/字母字符:

// 移除字符串中所有非数字、字母的字符,可根据需求调整规则
private static string RemoveSpecialChars(string input)
{
    // 正则保留0-9、a-z、A-Z,你也可以按需调整要保留/移除的字符
    return System.Text.RegularExpressions.Regex.Replace(input, @"[^0-9a-zA-Z]", "").ToLower();
}

如果需要更灵活的规则,比如仅移除指定字符,也可以直接做针对性替换:

private static string RemoveSpecialChars(string input)
{
    return input.Replace(",", "").Replace("$", "").Replace(".", "").ToLower();
}

步骤2:修改匹配逻辑

匹配时仅把临时清理后的句子和词库做判断,匹配成功直接返回原句:

List<string> res = row.ItemArray
    .OfType<string>() // 先筛选字符串类型,减少后续处理量
    .Where(sentence => wrdList.Any(wrd => 
        RemoveSpecialChars(sentence).Contains(wrd.ToLower()))) // 仅判断环节做清理,不修改原句
    .ToList();

提示:如果词库中的词汇也可能包含特殊字符,可以将判断逻辑调整为RemoveSpecialChars(sentence).Contains(RemoveSpecialChars(wrd)),适配更多场景。


效果验证

针对你的示例场景:

  • 原句:"Tesla car price is $ 250,000." 清理后得到teslacarpriceis250000
  • 词库中的"250000"可以成功匹配
  • 最终返回结果为未修改的原句"Tesla car price is $ 250,000.",完全符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:48:05