从字符串中删除前面的字符?

时间:2013-10-17 19:24:34

标签: c# .net string split c#-2.0

从字符串开头删除几个字符的最佳方法是什么?

sName = "IMG: Testing again"  
sName = "TXT: This is amazing"

所以删除IMG:和TXT ..等......

所以我能拥有这个吗?

sName = "Testing again"   
sName = "This is amazing"

6 个答案:

答案 0 :(得分:1)

好吧,如果它总是会有四个字符你可以做。 sName = sName.Substring(5)

答案 1 :(得分:1)

我个人喜欢简单的regular expression来完成这样的任务。

var result = Regex.Replace(input, @"^[A-Z]+:\s*", "");

这与它将删除的内容中的其他方法略有不同,因此这里解释匹配(也请参考regular expression quick reference)。

^         # anchor match to start of input
[A-Z]+    # match one or more capital English-alphabet characters
:         # match a colon
\s*       # match zero or more spaces

因此,这种方法也匹配像“HELLOWORLDILOVEYOU:说弗雷德”这样的输入,并在“TXT:Wut?”中摆脱额外的前导空格。

答案 2 :(得分:0)

假设您始终使用格式{TYPE}: {Text},并且您想要{Text},请使用此字段:

int index = sName.IndexOf(':') + 2; // two:  one for the colon and one for the space
sName = sName.Substring(index);

当然,这可以放在一行;为了清楚起见,我把它分成两部分。

您还可以为一般情况制作扩展方法:

public static string SubstringAfter(this string str, string sequence)
{
    int index = str.IndexOf(sequence);
    if (index > -1)
    {
        return str.Substring(str.IndexOf(sequence) + sequence.Length);
    }
    return str;
}

这可以让你这样做:

sName = sName.SubstringAfter(": ");

答案 3 :(得分:0)

 sName = sName.Remove(0,5); //simple but not perfect way

编辑:

 sName= sName.Split(':')[1]; //For splitting by ':'
 sName = sName.Remove(0,1); //For the space, or use sName.Trim();

答案 4 :(得分:0)

如果是固定格式,我建议你去拆分。看代码。拆分后,第一个索引将有你的项目。

var sName = sName.Split( new char[] {':'})[1].Trim();

答案 5 :(得分:0)

您可以使用

sName = sName.SubString(4, sname.Length)

它将是从字符串的第4个位置到最后位置的子字符串。