2015-12-09 64 views
-5

我正在寻找一种检测字符串中是否存在某个单词的方法。 例如,如果我有字符串“嗨,这是我”我想确保“嗨”存在; 我试了一下,到目前为止:检查字符串中的单词

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

工作不正常:这个问题是我需要确保这个词本身存在,而不是一个单词的一部分。 随着代码,因为它是这样做的:因为“喜”仍然是“T 的”一个子

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

仍然会返回true。 我该如何避免这种情况?

+2

['Regex'](https://msdn.microsoft.com/en -us /库/ system.text.regularexpressions.regex%28V = vs.110%29.aspx)。 –

回答

3

如何使用String.Split

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

谢谢,这工作完美:) – Lextredis

2

使用一些正规表达式 - Regex.IsMatch(@"\bhi\b");
不要忘记添加using System.Text.RegularExpressions;