0

我真的是初学者,我已经知道了

string.indexOf("");

可以搜索整个单词,但是当我尝试搜索e.g: ig out of pig, it doesn't work.

我这里有一个类似的字符串(部分):

<Special!>The moon is crashing to the Earth!</Special!>

因为我的文件中有很多这些,我无法编辑所有这些并添加一个空格,例如:

< Special! > The moon is crashing to the Earth! </ Special! > 

我需要得到sub-string特别的!月球正在撞击地球!在不添加插件的情况下搜索单词的一部分的简单方法是HTMLAgilityPack什么?

4

4 回答 4

1

IndexOf 会起作用,您可能只是使用不当。

如果您的字符串在变量调用 mystring 中,您会说 mystring.IndexOf 然后传入您要查找的字符串。

string mystring = "somestring";
int position = mystring.IndexOf("st");
于 2013-01-20T01:37:37.290 回答
0

请试试这个:

string s = "<Special!>The moon is crashing to the Earth!</Special!>";
int whereMyStringStarts = s.IndexOf("moon is crashing"); 

IndexOf也应该使用空格,但也许你有new lineortab字符,而不是空格?

有时区分大小写很重要。您可以通过名为 的附加参数来控制它comparisonType。例子:

 int whereMyStringStarts = s.IndexOf("Special", StringComparison.OrdinalIgnoreCase);

更多信息IndexOfMSDN 上的 String.IndexOf 方法

无论如何,我认为您可能需要正则表达式来创建更好的解析器。IndexOf 是非常原始的方法,您可能会陷入一大堆代码中。

于 2013-01-20T01:46:22.330 回答
0
   string page = "<Special!>The moon is crashing to the Earth!</Special!>";
        if (page.Contains("</Special!>"))
        {
            pos = page.IndexOf("<Special!>");
            propertyAddress = page.Substring(10, page.IndexOf("</Special!>")-11);
            //i used 10 because <special!> is 10 chars, i used 11 because </special!> is 11
        }

这会给你“月亮正在撞击地球!”

于 2013-01-20T01:50:38.963 回答
0

你如何使用它?你应该这样使用:

string test = "pig";
int result = test.IndexOf("ig");
// result = 1

如果你想让它不区分大小写,请使用

string test = "PIG";
int result = test.IndexOf("ig", StringComparison.InvariantCultureIgnoreCase);
// result = 1
于 2013-01-20T01:37:29.473 回答