我有类DirectoryServicesCOMException
的例外,我需要从它的ExtendedErrorMessage
属性中提取数据值。
以下是ExtendedErrorMessage
属性的示例测试:
8009030C: LdapErr: DSID-0C0904DC, comment: AcceptSecurityContext error, data 701, v1db1
我需要字符串中的701
。
仅供参考,我在SO:https://stackoverflow.com/a/15024909/481656
中找到了这些消息我通过使用LastIndexOf'数据'取得了成功。和下一个','在LastIndexOf'数据'之后组合但寻找更清洁的解决方案。
感谢。
答案 0 :(得分:1)
如果您想要的结果始终位于最后一个逗号之前且只是数字,则可以String.Split(Char[], StringSplitOptions)
overload使用StringSplitOptions
枚举和Regex.Match(string, string)
方法;
string s = "8009030C: LdapErr: DSID-0C0904DC, comment: AcceptSecurityContext error, data 701, v1db1";
string[] array = s.Split(new []{','},
StringSplitOptions.RemoveEmptyEntries);
string s1 = array[array.Length - 2]; // This will be " data 701"
string finalstring = Regex.Match(s1, @"\d+").Value; // \d+ is for only integer numbers
Console.WriteLine(finalstring); // Prints 701
这里有 demonstration
。