优雅的方式来重新uuid1()?

时间:2013-05-11 12:31:52

标签: python regex

使用uuid替换正则表达式搜索时,Python中最优雅的方法是什么?

re.sub(r'guid="([0-9a-f-]{36})"', uuid1(), contents)

由于此错误,上述声明失败:

TypeError: object of type 'UUID' has no len()

这是探讨lambda用法的适当方案吗?

1 个答案:

答案 0 :(得分:5)

uuid.uuid1()会返回uuid.UUID个对象。 re.sub的第二个参数需要可调用或字符串。在这种情况下,请将uuid1()转换为字符串:str(uuid1())

re.sub(r'guid="([0-9a-f-]{36})"', str(uuid1()), contents)