C#字符串不包含可能吗?

时间:2011-05-30 14:09:04

标签: c# string

这就是我的目标。我有一个读取html的爬虫,我想知道它什么时候不包含两个字符串。例如。

string firstString = "pineapple"
string secondString = "mango"

string compareString = "The wheels on the bus go round and round"

所以基本上我想知道第一个字符串和第二个字符串何时不在compareString中。

感谢您的帮助!

6 个答案:

答案 0 :(得分:61)

这应该适合你。

一句话:

if (!string.Contains("One"))

两个字:

if (!(string.Contains("One") && string.Contains("Two")))

答案 1 :(得分:9)

所以你可以利用短路:

bool containsBoth = compareString.Contains(firstString) && 
                    compareString.Contains(secondString);

答案 2 :(得分:7)

您应该将所有单词放入某种集合或列表中,然后将其称为:

var searchFor = new List<string>();
searchFor.Add("pineapple");
searchFor.Add("mango");

bool containsAnySearchString = searchFor.Any(word => compareString.Contains(word));

如果您需要进行案例或文化独立搜索,您应该这样称呼它:

bool containsAnySearchString = 
   searchFor.Any(word => compareString.IndexOf
     (word, StringComparison.InvariantCultureIgnoreCase >= 0);

答案 3 :(得分:5)

使用Enumerable.Contains功能:

var result =
    !(compareString.Contains(firstString) || compareString.Contains(secondString));

答案 4 :(得分:4)

bool isFirst = compareString.Contains(firstString);
bool isSecond = compareString.Contains(secondString );

答案 5 :(得分:3)

如果您想区分MangoMangosteen,请使用正则表达式。

var reg = new Regex(@"\b(pineapple|mango)\b", 
                       RegexOptions.IgnoreCase | RegexOptions.Multiline);
   if (!reg.Match(compareString).Success)
      ...