如何将连字符插入 UUID 字符串?
How to insert hyphens into a UUID string?
我想创建一个函数,在 UUID 字符串的位置 8、12、16、20 上添加一个 -
。
示例:
Original: 76684739331d422cb93e5057c112b637
New: 76684739-331d-422c-b93e-5057c112b637
我不知道如何将它定位在看起来不像意大利面条代码的字符串中的多个位置。
您可以通过切片逐步追加新字符串来实现:
original = "76684739331d422cb93e5057c112b637"
indices = [8, 12, 16, 20]
delimiter = "-"
new_string = ""
prev = 0
for index in indices:
new_string += original[prev:index] + delimiter
prev = index
new_string += original[prev:]
print(new_string)
# 76684739-331d-422c-b93e-5057c112b637
给出以下参数:
delimiter = '-'
indexes = [8,12,16,20]
string = '76684739331d422cb93e5057c112b637'
您可以将 list comprehension
与 join
一起使用:
idx = [0] + indexes + [len(string)]
delimiter.join([string[idx[i]:idx[i+1]] for i in range(len(idx)-1)])
输出:
'76684739-331d-422c-b93e-5057c112b637'
您似乎正在使用 UUID。 library 是 Python 的标准配置:
import uuid
s = '76684739331d422cb93e5057c112b637'
u = uuid.UUID(hex=s)
print(u)
76684739-331d-422c-b93e-5057c112b637
Regex是另一种方式,\S匹配任何非空白字符,{}中的数字是字符数。
import re
new=re.sub(r'(\S{8})(\S{4})(\S{4})(\S{4})(.*)',r'----',original)
print(new)
# 76684739-331d-422c-b93e-5057c112b637
我想创建一个函数,在 UUID 字符串的位置 8、12、16、20 上添加一个 -
。
示例:
Original: 76684739331d422cb93e5057c112b637
New: 76684739-331d-422c-b93e-5057c112b637
我不知道如何将它定位在看起来不像意大利面条代码的字符串中的多个位置。
您可以通过切片逐步追加新字符串来实现:
original = "76684739331d422cb93e5057c112b637"
indices = [8, 12, 16, 20]
delimiter = "-"
new_string = ""
prev = 0
for index in indices:
new_string += original[prev:index] + delimiter
prev = index
new_string += original[prev:]
print(new_string)
# 76684739-331d-422c-b93e-5057c112b637
给出以下参数:
delimiter = '-'
indexes = [8,12,16,20]
string = '76684739331d422cb93e5057c112b637'
您可以将 list comprehension
与 join
一起使用:
idx = [0] + indexes + [len(string)]
delimiter.join([string[idx[i]:idx[i+1]] for i in range(len(idx)-1)])
输出:
'76684739-331d-422c-b93e-5057c112b637'
您似乎正在使用 UUID。 library 是 Python 的标准配置:
import uuid
s = '76684739331d422cb93e5057c112b637'
u = uuid.UUID(hex=s)
print(u)
76684739-331d-422c-b93e-5057c112b637
Regex是另一种方式,\S匹配任何非空白字符,{}中的数字是字符数。
import re
new=re.sub(r'(\S{8})(\S{4})(\S{4})(\S{4})(.*)',r'----',original)
print(new)
# 76684739-331d-422c-b93e-5057c112b637