如果子字符串在单词中,则获取单词之前的索引值

时间:2012-09-06 12:38:54

标签: c# string asp.net-mvc-2

在使用.Substring(0, 100)进行某次计数后,我已经删除了描述文字的子字符串。我不想在一个单词的中间打破,如果是这样的话,我想在单词前面的第一个空格。

我想我检查下一个字符是否在单词的中间不是" "。 我最大的问题是如何向后退步以获得" "(空格)的索引。

这是我到目前为止所得到的

        string description = "a long string";            

        description = Regex.Replace(description, @"(?></?\w+)(?>(?:[^>'""]+|'[^']*'|""[^""]*"")*)>", String.Empty);
        var newString = (description.Count() > 101) ? description.Substring(0, 101) : description;

        //i tried something like this
        var whatIsNext = newString.IndexOf(" ", 100, -20);

3 个答案:

答案 0 :(得分:3)

我认为您正在寻找String.LastIndexOf

  

报告此实例中最后一次出现的指定Unicode字符的从零开始的索引位置。搜索从指定的字符位置开始,然后向后朝向字符串的开头。

你想要这样的东西:

int index = s.LastIndexOf(' ', 100);

答案 1 :(得分:1)

使用LastIndexOf并将其应用于子字符串

// The string we are searching.
string value = "Dot Net Perls";
//
// Find the last occurrence of ' '.
int index1 = value.LastIndexOf(' ');

链接Info

答案 2 :(得分:0)

var whatIsNext = newString.Substring(0, newString.LastIndexOf(' '));