我已经在这里找到了一个关于 UUID 正则表达式的问题,但是这些表达式不考虑缺少分隔符。
我想出了以下表达式,但是有没有更优化的正则表达式?
/\b([0-9a-f]{8}-?([0-9a-f]{4}-?){3}[0-9a-f]{12})\b/i
我假设您的意思是更短的表达式。我将您的正则表达式简化为以下内容:
/[\da-f]{8}-?([\da-f]{4}-?){3}[\da-f]{12}/i
,你可以在这里看到它的作用。
我删除了外括号,\b
因为没有它们,一切都正确匹配。我还可以通过替换[0-9a-f]
为[\da-f]
.
我最初有[0-F]
,但在检查 ASCII 序列后,我意识到
0123456789:;<=>?@ABCDEF
match ,其中包括一些我们不想匹配的额外符号。
总之,我的表达与你的表达是同义的,但包含的字符少了九个。