【问题标题】:Extract a GUID from a string. How can I do it?从字符串中提取 GUID。我该怎么做?
【发布时间】:2018-08-31 09:38:13
【问题描述】:

我有一个这种格式的字符串:

"object": "Board-f330c10a-a9eb-4253-b554-43ed95c87242"

我想从中提取 guid。我正在尝试这样:

Guid.Parse(followActivity.Object.Split('-').Skip(1).FirstOrDefault());

但它只需要 guid 字符串的第一部分。如何提取整个 guid?

谁能帮忙。

【问题讨论】:

  • 使用匹配 GUID 的正则表达式,例如这里的那个。 stackoverflow.com/questions/11040707/c-sharp-regex-for-guid
  • 你确定吗,每个输入都应该在GUID之前包含Board-或类似的东西
  • @sujithkarivelil 是的。每个字符串都像 Board-f330c10a-a9eb-4253-b554-43ed95c87242
  • 您的代码说“拆分破折号,然后忽略第一项,然后给我下一项”。你应该把它一块一块地组装起来。
  • 谢谢大家。所有答案 amd cmets 都有帮助。问题解决了。

标签: c# guid


【解决方案1】:

尝试this Example 之类的东西,如果每个输入都遵循Board- 之类的相同模式:

string complexGuid = "Board-f330c10a-a9eb-4253-b554-43ed95c87242";
string extractedGuid = complexGuid.Substring(complexGuid.IndexOf('-') +1 );

这里complexGuid.IndexOf('-') 将返回'-' 的第一个索引,即在给定示例中Board 之后的-。我们还需要跳过它,所以添加一个+1 以便.Substring() 将为您提供预期的输出。

【讨论】:

    【解决方案2】:

    试试这个

     Guid.Parse(string.Join("-",followActivity.Object.Split('-').Skip(1)))
    

    【讨论】:

      【解决方案3】:

      或者只是

      Guid.Parse(followActivity.Object.Replace("Board-",""));
      

      【讨论】:

        【解决方案4】:

        如果格式始终相同,您可以使用string.Split()

        Guid.Parse(followActivity.Object.Split(new char[]{'-'}, 2)[1]));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-02
          • 1970-01-01
          • 2011-01-12
          • 2018-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多