【发布时间】:2017-12-16 03:52:56
【问题描述】:
我有以下字符串,我试图在其中获取StatusCode: 值,输出应该是409..我尝试如下但不工作,这样做的正确方法是什么?
string output = 'QLASR: Bad Response Conflict StatusCode: 409, ReasonPhrase: 'Improper Software Product Build Name already present in the database', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Pragma: no-cache Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET,PUT,POST,DELETE,OPTIONS Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept Cache-Control: no-cache Date: Tue, 11 Jul 2017 22:18:26 GMT Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Content-Length: 68 Content-Type: text/plain; charset=utf-8 Expires: -1 }'
output.Any(x => x.Equals(StatusCode))
【问题讨论】:
-
单词是否总是
StatusCode:并且逗号总是跟随值? -
@maccettura - 是的,你的假设是正确的
-
另外,这看起来像是格式不正确的 JSON,应该是 JSON 吗?
-
如果它是 JSON,那么只需反序列化为一个对象并在那里获取值。
-
您可以根据不同程度的稳健性来实现这一点,具体取决于您可以对文本的形状做出哪些假设。如果您的输入还不是某种标准的可解析格式,并且编写合适的解析器工作量太大,则首选方法通常是使用正则表达式。
标签: c#