c# - contains 方法返回错误值
问题描述
我Contains()
用来检查一个字符串是否有一个单词,并且该方法返回 true,但没有我要比较的单词。
文本:
“在全民医疗保险和绿色新政的幌子下,民主党人正在接受过去一个世纪使国家陷入贫困并扼杀数百万人自由的疲惫经济理论,”彭斯在掌声中说道。“那个制度就是社会主义。
“所谓的绿色新政唯一的绿色就是如果我们这样做,它将花费纳税人多少绿色:9000万美元,”他说。民主党人表示,价格标签将低于彭斯引用的数字。
他在华盛顿郊外的保守党政治行动会议上发表的评论继续推动白宫和共和党全国委员会将反对党描绘成一心要使美国经济成为华盛顿中央计划的经济体,并打算从美国人的口袋里拿出钱来资助一个无数的社交项目。”
查询词语:“民族”
你知道另一种搜索方式吗?
解决方案
您的搜索正在返回true
,因为文本包含“nations”,其中包括字符串“nation”。
如果您想搜索单词“nation”而不包含类似“nations”的单词,最简单的方法可能是使用正则表达式和\b
匹配单词边界的元字符。
bool found = Regex.IsMatch(text, @"\bnation\b");
如果你想概括这一点,你可以写:
string search = "nation";
bool found = Regex.IsMatch(text, $@"\b{Regex.Escape(search)}\b");
正如@Flydog57 在评论中有用地指出的那样,如果这是您所追求的,您也可以进行不区分大小写的搜索:
string search = "nation";
bool found = Regex.IsMatch(text, $@"\b{Regex.Escape(search)}\b", RegexOptions.IgnoreCase);
推荐阅读
- list - 我可以创建一个将一些字符串放入元组或列表中的 Haskell 函数吗?
- python - python字数频率中的“名称'word_tokenize'未定义”
- java - Gradle 构建文件在 2.10 版中工作正常,但在升级到 4.6 后它停止工作
- python - Python 读取文件由分隔符确定 \r\n
- python - 编码器/解码器模型如何在深度学习中学习?
- scala - 找到 ListBuffer[List[String]] 的共同元素的有效方法是什么?
- r - 在单独的行 R 之后清除除组中第一行之外的变量
- php - Drupal dpm 没有在alter hook 上记录任何内容?
- python - 张量板权重直方图不像正态分布
- c++ - 我正在编写一个简单的客户端套接字应用程序,但连接后服务器接收到一个空缓冲区