3

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

我想出了以下表达式,但是有没有更优化的正则表达式?

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

4

1 回答 1

0

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

/[\da-f]{8}-?([\da-f]{4}-?){3}[\da-f]{12}/i,你可以在这里看到它的作用。

我删除了外括号,\b因为没有它们,一切都正确匹配。我还可以通过替换[0-9a-f][\da-f].

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

总之,我的表达与你的表达是同义的,但包含的字符少了九个。

于 2013-12-31T05:11:15.930 回答