【问题标题】:Optimal UUID RegEx with optional delimeters带有可选分隔符的最佳 UUID RegEx
【发布时间】:2013-01-13 16:55:39
【问题描述】:

我已经找到了一个关于 UUID 正则表达式 here 的问题,但是这些表达式不考虑缺少分隔符。

我想出了following expression,但是有没有更优化的RegEx?

/\b([0-9a-f]{8}-?([0-9a-f]{4}-?){3}[0-9a-f]{12})\b/i

【问题讨论】:

  • 在什么方面最优化?长度?执行时间处理时间?更严格的正则表达式?

标签: regex uuid


【解决方案1】:

我假设您的意思是更短的表达式。我将您的正则表达式简化为以下内容:

/[\da-f]{8}-?([\da-f]{4}-?){3}[\da-f]{12}/i,您可以在here 中看到它。

我删除了外括号和\b,因为没有它们,一切都正确匹配。 我还可以通过将[0-9a-f] 替换为[\da-f] 来减少三个字符。

我原来有[0-F],但在检查了ASCII序列后,我意识到匹配 0123456789:;<=>?@ABCDEF,其中包含一些我们不想匹配的额外符号。

总之,我的表达方式与你的表达方式相同,但少了九个字符。

【讨论】:

    猜你喜欢
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多