如何从谷歌API错误消息中提取“消息”部分

本文关键字:消息 提取 部分 错误 谷歌 API | 更新日期: 2023-09-27 18:35:40

我需要格式化从Google返回的异常消息,并以很好的方式将它们呈现给最终用户。(使用 C#)

异常格式:(在本例中,我调用的是管理员 SDK。

Google.Apis.Requests.RequestError.Entity已经存在。 [409]. 错误 [. 消息[实体已存在。 位置 [ - ] 原因 [重复] 域 [全局] .

另一个错误,

已达到Google.Apis.Requests.RequestError.domain用户限制。 [412]. 错误 [. 邮件[已达到域用户限制。 位置 [如果匹配 - 标题] 原因[超出限制] 域[全局] .

如何从上述错误消息中提取"消息"?(在上面的示例中,"实体已存在"或"已达到域用户限制")

如何从谷歌API错误消息中提取“消息”部分

这是

Regix的工作。以下内容应满足您的需求:

        string message1 = "Google.Apis.Requests.RequestError.Entity already exists. "
                          +"[409]. Errors [. Message[Entity already exists.] Location [ - ] Reason [duplicate] Domain [global] .]";
        string message2 = "Google.Apis.Requests.RequestError.Domain user limit reached. "
                          +"[412]. Errors [. Message[Domain user limit reached.] Location [If-Match - header] Reason[limitExceeded] Domain[global] .]";
        string pattern = @"Message'[(('w+'s){2,}('w+'s?)*)'.']";
        Regex regex = new Regex(pattern);
        Match m = regex.Match(message1); //or regex.Match(message2)
        if (m.Success)
        {
            Group g = m.Groups[1]; //m.Groups[0] will Match 'Message[.....]'
            CaptureCollection cc = g.Captures;
            for (int i = 0; i < cc.Count; i++)
            {
                Capture c = cc[i];
                Console.WriteLine("Message: {0}", c);
            }
        }
        Console.ReadLine();

试试这个模式。

字符串模式 = @"消息[([A-Za-z0-9-''s*]+)]*";