我有一个字符串,我需要删除某些字符。
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个字符。
任何帮助将不胜感激:)
答案 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