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