【问题标题】:Checking for a word inside a string [duplicate]检查字符串中的单词[重复]
【发布时间】:2015-12-09 14:29:40
【问题描述】:

我正在寻找一种方法来检测字符串中是否存在某个单词。 例如,如果我有字符串“hi, this is me”,我想确保存在“hi”; 到目前为止我尝试了什么:

bool containsWord () {
    string str = "hi, this is me";
    return str.Contains ("hi");
}

不能正常工作:问题是我需要确保单词本身存在并且不是另一个单词的一部分。 使用原样的代码,执行:

bool containsWord () {
    string str = "this is me";
    return str.Contains ("hi");
}

仍然会返回 true,因为“hi”仍然是“this”的子字符串。 我怎样才能避免这种情况?

【问题讨论】:

标签: c#


【解决方案1】:

String.Split怎么样

 // Add other punctuation if need 
var array = str.Split(" ,;.".ToCharArray(), StringSplitOptions.RemoveEmptyEntries) ;
bool containsWord = array.Any(s => s.Equals("hi", StringComparison.InvariantCultureIgnoreCase)); 

【讨论】:

  • 谢谢,效果很好:)
【解决方案2】:

使用一些正则表达式 - Regex.IsMatch(@"\bhi\b");
别忘了加using System.Text.RegularExpressions;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-17
    • 2011-03-17
    • 2019-12-12
    • 2016-12-05
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    相关资源
    最近更新 更多