删除uuid4字符串模式

时间:2016-09-12 13:57:08

标签: python uuid

我有以下字符串示例

1# 00000 Gin-a19ea68e-64bf-4471-b4d1-44f6bd9c1708-62fa6ae2-599c-4ff1-8249-bf6411ce3be7-83930e63-2149-40f0-b6ff-0838596a9b89 Kin

2# 00000 Gin-a19ea68e-64bf-4471-b4d1-44f6bd9c1708 Kin

我正在尝试删除uuid4生成的字符串以及python中uuid4字符串模式右侧的任何文本。

两个示例中的输出应为00000 Gin

我在这里查了What is the correct regex for matching values generated by uuid.uuid4().hex?。但仍然没有帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用:

import re

strings = ["00000 Gin-a19ea68e-64bf-4471-b4d1-44f6bd9c1708-62fa6ae2-599c-4ff1-8249-bf6411ce3be7-83930e63-2149-40f0-b6ff-0838596a9b89 Kin",
"00000 Gin-a19ea68e-64bf-4471-b4d1-44f6bd9c1708 Kin"]

rx = re.compile(r'^[^-]+')
# match the start and anything not - greedily

new_strings = [match.group(0)
                for string in strings
                for match in [rx.search(string)]
                if match]
print(new_strings)
# ['00000 Gin', '00000 Gin']

<小时/> 见a demo on ideone.com。 要实际 检查 ,如果您的字符串是所需的格式,您可以使用以下表达式:

^
(?P<interesting>.+?)                   # before
(?P<uid>\b\w{8}-(?:\w{4}-){3}\w{12}\b) # uid
(?P<junk>.+)                           # garbage
$

regex101.com上查看此演示文稿(请注意修饰符!)。