几次在文本中查找字符串并每次都执行操作

时间:2016-11-16 15:20:10

标签: c# watin

我想用WatiN找到文本中的所有字符串。 我可以找到第一个字符串,但我不能收集所有这些字符串。 例如,我想在本文中找到所有出现的“水”:

  

地球上有很多水。但并非所有的水都可以饮用。

所以在这里我应该找到2“水”。我的代码只找到第一个。我怎样才能找到它们?

我的代码是:

IE ie = new IE("http://examplesite.com");

Element test = ie.Table(Find.ByClass("dataTable")).Element("td");

ie.TableRow(Find.ByText(t => t.Contains("example string"))).TextField(Find.ByName("examplename")).Button(Find.ByValue("example value")).Click();

ie.WaitForComplete();
Console.WriteLine("finished");

2 个答案:

答案 0 :(得分:1)

您可以在循环中使用IndexOf来查找子串的多次出现。

const string haystack = "there are lots of water in the earth. but all of water arent drinkble.";
const string needle = "water";

var startIndex = -1;
while ((startIndex = haystack.IndexOf(needle, startIndex + 1)) > -1)
{
    Console.WriteLine("Found {0} at {1}", needle, startIndex);
}

答案 1 :(得分:0)

拆分字符串,然后抓取包含您要查找内容的所有条目。

var sentence = "There is a lot of water on earth. But not all water is drinkable."
var parts = sentence.Split(' ');
var words = parts.Where(p => p == "water");