在字符串中搜索子字符串

时间:2013-01-20 01:32:45

标签: c#

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

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 个答案:

答案 0 :(得分:1)

IndexOf会起作用,你可能只是不正确地使用它。

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

string mystring = "somestring";
int position = mystring.IndexOf("st");

答案 1 :(得分:0)

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

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

如果您想使其不区分大小写,请使用

string test = "PIG";
int result = test.IndexOf("ig", StringComparison.InvariantCultureIgnoreCase);
// result = 1

答案 2 :(得分:0)

请试试这个:

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

IndexOf也应该使用空格,但是你可能有new linetab个字符,而不是空格?

有时,区分大小写非常重要。您可以通过名为comparisonType的其他参数来控制它。例如:

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

有关IndexOf的更多信息:String.IndexOf Method at MSDN

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

答案 3 :(得分: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
        }

这会让你“月亮撞向地球!”