Regex 正则表达式匹配8或12或32十六进制数

Regex 正则表达式匹配8或12或32十六进制数,regex,Regex,我正在尝试为不区分大小写的十六进制数编写一个正则表达式,它的长度应该匹配8、12或32 The regex I have so far is: /^[0-9A-F]{8}|[0-9A-F]{12}|[0-9A-F]{32}$/i The pattern I am trying to test against is: 96AFC4ADA8C44A36B0CB1EC28531C3BC or 870b72a9a020 or 569ac61e 但这似乎不符合标准 你能帮忙吗 谢谢,您可以使

我正在尝试为不区分大小写的十六进制数编写一个正则表达式,它的长度应该匹配8、12或32

The regex I have so far is:

/^[0-9A-F]{8}|[0-9A-F]{12}|[0-9A-F]{32}$/i

The pattern I am trying to test against is:
96AFC4ADA8C44A36B0CB1EC28531C3BC

or

870b72a9a020

or

569ac61e
但这似乎不符合标准

你能帮忙吗


谢谢,

您可以使用以下内容:

/^[0-9A-F]{8}([0-9A-F]{4}([0-9A-F]{20})?)?$/i

如果存在最里面的组,则匹配32位数字;如果存在中间组但不存在最里面的组,则匹配12位数字;如果两个最里面的组都不存在,则匹配8位数字。

您可以这样使用:

/^[0-9A-F]{8}([0-9A-F]{4}([0-9A-F]{20})?)?$/i

如果存在最内层组,则匹配32位数字;如果存在中间组但不存在最内层组,则匹配12位数字;如果两个内层组均不存在,则匹配8位数字。

您的方法基本正确,但您需要从备选方案中选择
^
$
,因此,它们作为一个整体应用于regexp:

/^(?:[0-9A-F]{8}|[0-9A-F]{12}|[0-9A-F]{32})$/i

您的方法基本上是正确的,但是您需要从备选方案中去掉
^
$
,因此它们作为一个整体应用于regexp:

/^(?:[0-9A-F]{8}|[0-9A-F]{12}|[0-9A-F]{32})$/i

这个案例不敏感吗?@Jake如果你包括
i
标志(抱歉,我在原始版本中忽略了这个)。这个案例不敏感吗?@Jake如果你包括
i
标志(抱歉,我在原始版本中忽略了这个)。可能的重复可能的重复