如何从字符串中获取这些值?

时间:2010-10-30 04:36:38

标签: c# asp.net string

webservice返回以下字符串

“ID:xxxx状态:yyyy”

如何在没有“ID:”文本的情况下获取值ID值,在没有“状态:”文本的情况下获取“状态”值。

Id值应为xxxx 状态值应为yyyy

值长度未知。

2 个答案:

答案 0 :(得分:8)

一种方法是使用正则表达式。

这样做的好处是“自然地”验证Web服务返回的字符串是否符合您预期的格式,从而可以轻松处理错误的输入。

例如:

Regex regex = new Regex(@"^ID:\s*(.+)\s*Status:\s*(.+)$");
Match match = regex.Match(input);

// If the input doesn't match the expected format..
if (!match.Success)
    throw new ArgumentException("...");

string id = match.Groups[1].Value; // Group 0 is the whole match
string status = match.Groups[2].Value;

^         Start of string
ID:       Verbatim text
\s*       0 or more whitespaces
(.+)      'ID' group (you can use a named group if you like)
\s*       0 or more whitespaces
Status:   Verbatim text
\s*       0 or more whitespaces
(.+)      'Status' group
$         End of string

如果您可以澄清xxxxyyyy可以是什么(字母,数字等),我们可能会提供更强大的正则表达式。

答案 1 :(得分:2)

使用类似的东西:

string s = "ID: xxxx Status: yyyy";
string[] words = s.Split(' ');
string id = s[1];
string status = s[3];

您可以根据需要将值转换/转换为其他数据类型。