我有兩個字符串:字符串比較C# - 全字匹配
string1 = "theater is small";
string2 = "The small thing in the world";
我需要檢查天氣字符串「的」出現在字符串或沒有。
我可以使用包含功能,但它可以做一個完整的單詞匹配?即它不應該與string1的「劇院」相匹配!
我有兩個字符串:字符串比較C# - 全字匹配
string1 = "theater is small";
string2 = "The small thing in the world";
我需要檢查天氣字符串「的」出現在字符串或沒有。
我可以使用包含功能,但它可以做一個完整的單詞匹配?即它不應該與string1的「劇院」相匹配!
您可以改爲使用正則表達式。這樣你就可以指定你最後只需要空間或行尾。
最簡單的解決方案是使用正則表達式和單詞邊界定界符\b
:如果你想找到不匹配的資本
bool result = Regex.IsMatch(text, "\\bthe\\b");
,或者,
bool result = Regex.IsMatch(text, "\\bthe\\b", RegexOptions.IgnoreCase);
(using System.Text.RegularExpressons
。)
或者,您可以將文本分割爲單個單詞並搜索結果數組。然而,這並不總是微不足道的,因爲它不足以分割空白;這會忽略所有標點併產生錯誤的結果。解決方案是再次使用正則表達式,即Regex.Split
。
使用方法Regex.IsMatch使用\bthe\b
,\b
表示字邊界定界符。
// false
bool string1Matched = Regex.IsMatch(string1, @"\bthe\b", RegexOptions.IgnoreCase);
// true
bool string2Matched = Regex.IsMatch(string2, @"\bthe\b", RegexOptions.IgnoreCase);
str.Split().Contains(word);
或
char[] separators = { '\n', ',', '.', ' ' }; // add your own
str.Split(separators).Contains(word);
您可能還需要指定RegexOptions.IgnoreCase – 2010-10-11 08:40:55
你的參數是向後詞添加的空間!輸入是第一個,然後是匹配的模式。 – 2012-06-14 14:30:45
它通過了「世界上的小事」也是我的要求是它應該返回false。 – 2016-07-15 09:24:24