获取String C#的一部分

时间:2016-03-20 03:25:06

标签: c# string irc

:barbosza!barbosza@barbosza.tmi.twitch.tv PRIVMSG #pggamesbr :My text

我希望第二个':'之后的部分,但我不能用':'分割,因为有时也包含它。

3 个答案:

答案 0 :(得分:4)

您可以拆分并指定最大项目数,以便第二次冒号后的所有内容都在第三项中结束:

string[] parts = str.Split(new char[]{':'}, 3);

第二个冒号之后的部分现在位于parts[2]

答案 1 :(得分:0)

我猜“他也包含它”意味着“我的文字也包含它”。

在这种情况下,请执行此操作

string toFind = "#pggamesbr :";
string myText = myString.Substring(myString.IndexOf(toFind) + toFind.Length);

答案 2 :(得分:0)

我喜欢Guffa简单的Split解决方案,并且如果这就是你需要的话,我会选择它。但是,只是为了好玩......

如果遇到很多像这样的奇怪案例 - 你希望用字符串更容易做的事情 - 你可以考虑添加扩展方法来处理它们。如,

using System;

public static MyStringExtentions
{
    public static string After(this string orig, char delimiter)
    {
        int p = orig.indexOf(delimiter);
        if (p == -1)
            return string.Empty;
        else
            return orig.Substring(p + 1);
    }
}

然后,在您现有的代码中,只要您有一个using指令,以包含对MyStringExtentions定义的引用访问权限:

string afterPart = myString.After(':').After(':');

免责声明:我实际上没有对此进行测试。可能需要一些调整。它可能会被调整为更高效等等。

同样,对于这个问题,这可能有点过头了。 (请参阅Guffa对此非常简单的答案。)当你发现自己有很多这样的东西并想要一种通用的方式让它们可用时,就把它扔掉。

参考。 Extension Methods (C# Programming Guide)