首页 > 解决方案 > 如何从具有两个 UUID 的复合字符串中提取 UUID

问题描述

我收到一个包含两个 UUID 组合在一起的字符串,两个 UUID 之间有一个连字符。但我面临的挑战是使用它作为分隔符来分割,因为 UUID 也包含连字符。

我收到的示例字符串

91f100f5-6cb5-4b67-8c4c-e8be4d7e9613-5ef4a13b-aed9-45e4-a94c-978a5da31008

上面的字符串是这两者的组合。

91f100f5-6cb5-4b67-8c4c-e8be4d7e9613

5ef4a13b-aed9-45e4-a94c-978a5da31008

标签: stringparsinguuid

解决方案


您将不得不做出与“用连字符分隔的两个字符串”不同的假设才能做到这一点。对于您提供的情况,最明显的是假设输入是两个长度为 36 的字符串(32 个十六进制数字加 4 个连字符),然后执行 data[:36] 来获取第一个,然后执行 data[37:] 来获取第二。另一个是假设您想在第 5 个连字符处拆分。鉴于这些假设中的每一个,这是执行您想要的代码的代码:

#!/usr/bin/env python

data = "91f100f5-6cb5-4b67-8c4c-e8be4d7e9613-5ef4a13b-aed9-45e4-a94c-978a5da31008"

def main():
    # Assume two strings of length 36 each
    print data[:36]
    print data[37:]

    print

    # Assume split on 5th hyphen
    splt = data.split('-')
    print '-'.join(splt[:5])
    print '-'.join(splt[5:])

main()

推荐阅读