首页 > 解决方案 > 在 C# 中的特定字符之后获取部分字符串/数字

问题描述

我想知道如何从用户发送的消息中拆分特定字符串看起来像这样

"username: @newbie <----- need to recive the all string with the '@'
password: 1g1d91dk
uid: 961515154 <-- always string of 9 numbers
message: blablabla < ---- changing anytime how can i recive the string after message:"
date: 30/06/18" 
mnumer: 854762158 <-- always string of 9 numbers to but i want to upper one

我的意思是在“uid:”之后获得9 位数字

非常感谢 !我发现了一个类似的问题,但没有一个回答我的问题对不起我的英语不是母语的拼写

标签: c#string

解决方案


你能不能简单地用新行分割字符串,.Split('\n')这会给你一个string[],然后在每个元素中分割,':'然后读取第二个值?Dictionary<string, string>如果您需要通过第一位引用,您可以将其存储在

string inString = @"username: @newbie
password: 1g1d91dk
uid: 961515154
message: blablabla
date: 30/06/18
mnumer: 854762158";

string[] lines = inString.Split('\n');

Dictionary<string, string> data = new Dictionary<string, string>();

foreach (string line in lines)
{
    // There are two ways to avoid splitting multiple : and just using the first
    // Here is my way
    string[] keyValue = line.Split(':');

    data.Add(keyValue[0].Trim(), string.Join(':', keyValue.Skip(1).ToArray()).Trim());

    // Here is another way courtesy of: Dmitry Bychenko
    string[] keyValue = line.Split(new char[] {':'}, 2);

    data.Add(keyValue[0].Trim(), keyValue[1].Trim());
}

这将为您提供一个字典,您可以在其中通过第一部分访问字符串每个部分的值。

不确定您的用途是什么,但这会有所帮助。

你可以uid通过做得到data["uid"]


推荐阅读