在字符串中找到索引之前删除一定数量的字符

时间:2012-12-12 16:20:14

标签: c# string replace substring indexof

我有一个字符串,我需要删除某些字符。

  

string note =“TextEntry_Slide_7 | Notepad one我要在整个地方输入文字:)| 250887 | 0 ^ TextEntry_Slide_10 |记事本二:wrilun3q 4p9834m ggddi :( | 996052 | 2 ^ TextEntry_Slide_14 || 774159 | 4 ^ TextEntry_Slide_16 | tnoinrgb rt trn n | 805585 | 5“

我想删除^字符以及^字符后面的9个字符。所以字符串看起来像:

  

string note =“TextEntry_Slide_7 | Notepad one我要在整个地方输入文字:)TextEntry_Slide_10 |记事本二:wrilun3q 4p9834m ggddi :( TextEntry_Slide_14 | TextEntry_Slide_16 | tnoinrgb rt trn n | 805585 | 5”

此后,我需要删除字符串末尾的最后9个字符:

  

string note =“TextEntry_Slide_7 | Notepad one我将在整个地方输入文字:)TextEntry_Slide_10 |记事本二:wrilun3q 4p9834m ggddi:(TextEntry_Slide_14 | TextEntry_Slide_16 | tnoinrgb rt trn n”

我已经删除了原本在字符串中的大量其他内容,但我对如何执行上述操作感到困惑。

我找到^字符的索引,例如note.IndexOf("^"),但我不确定接下来要删除之前的9个字符。

任何帮助将不胜感激:)

5 个答案:

答案 0 :(得分:3)

一种简单的方法是Regex.Replace(note, ".{9,9}\\^", "");

删除最后9个字符的明显方法是note.Substring(0, note.length - 9);

答案 1 :(得分:1)

当然,您所需要的只是:

string output = Regex.Replace(note, @".{9}\^", string.Empty);
// remove last 9
output = output.Remove(output.Length - 9);

答案 2 :(得分:1)

首先,我们使用正则表达式去除插入符号和前面的九个字符。

 var stepOne = Regex.Replace(input, @".{9}\^", String.Empty);

然后我们扔掉最后九个字符。

 var stepTwo = stepOne.Remove(stepOne.Length - 9);

你应该添加一些错误处理 - 例如,如果字符串在第一步之后短于九个字符。

答案 3 :(得分:0)

如果您使用.IndexOf("^"),则可以将结果/位置存储到临时变量中,然后使用几个.Substring()调用来重建字符串。

尝试类似:

int carotPos = note.IndexOf("^");
while (carotPos > -1) {
    if (carotPos <= 9) {
        note = note.Substring(carotPos);
    } else {
        note = note.Substring(0, (carotPos - 9)) + note.Substring(carotPos);
    }
    carotPos = note.IndexOf("^");
}

这将在字符串中找到第一个^并删除它前面的前9个字符(包括^)。然后,它将在字符串中找到下一个^并重复,直到没有剩余。{/ p>

然后从字符串中删除最后9个字符,再做一个.Substring()

note = note.Substring(0, (note.Length - 9));

答案 4 :(得分:0)

不确定你的语言是什么,但在vb.net中我使用了instr()函数。 instr告诉你它在另一个字符串中找到字符串的第一个匹配的可能性,如果它没有找到字符串,则返回0或负数。

接下来如果要在vb.net中去掉字符串,你可以使用mid()函数和len()函数轻松完成这个,len告诉你长度和instr你可以从字符串中计算出你想要的东西

如果您想在C#中执行此操作,请检查此网址:http://www.dotnetcurry.com/ShowArticle.aspx?ID=189