C#从字符串中获取用户名.分裂

本文关键字:用户 分裂 获取 字符串 | 更新日期: 2023-09-27 18:26:17

大家好,我想分割文本并获取值

如何从这里获得Example

L 02/28/2012 - 04:52:05: "Example<2><VALVE_ID_PENDING><>" entered the game

我试了一大堆东西,但对我来说很难?有人能帮我吗?

C#从字符串中获取用户名.分裂

可以尝试类似的东西

string s = "L 02/28/2012 - 04:52:05: '"Example<2><VALVE_ID_PENDING><>'" entered the game";
int start = s.IndexOf('"')+1;
int end = s.IndexOf('<');
var un = s.Substring(start, end-start);
// say you have your text in the text variable
var yourExtractedText = text.Split('"').Split('<')[0];

不过要小心,如果字符串的格式发生更改,这将导致异常。

您可以考虑使用正则表达式来查找您要查找的内容:

Match match = Regex(inputString, "'"(['w's]+)<");
if (match.Success) {
    String username = match.Groups[1].Value;
}

注意包括你知道必须提供的信息。例如,如果您知道您的用户名以引号开头,仅由单词字符和空格组成,并以尖括号分隔的数字结束,那么您可以改为写:

Match match = Regex(inputString, "'"(['w's]+)<[0-9]+>");
if (match.Success) {
    String username = match.Groups[1].Value;
}

这里是:

        private void button2_Click(object sender, EventArgs e)
        {
            string temp = GetExample("L 02/28/2012 - 04:52:05: '"Example<2><VALVE_ID_PENDING><>'" entered the game");
        }
    private string GetExample(string text)
    {
        int startIndex = text.IndexOf('"');
        int endIndex = text.IndexOf('<');
        return text.Substring(startIndex + 1, endIndex - startIndex - 1);
    }

不要忘记,在字符串中的"之前应该有一个'

您需要在输出字符串开始之前给定字符。如果您执行myString.Split('"');,您将获得字符串数组

string[] myStringArray = myString.Split('"');
myStringArray[0]  contains L 02/28/2012 - 04:52:05: 
myStringArray[1]  contains Example<2><VALVE_ID_PENDING><>" 
myStringArray[2]  contains entered the game 

您可以应用此逻辑并构建所需的字符串。

再次构造字符串时,请记住使用StringBuilder。