正则表达式验证十六进制字符串

时间:2008-11-13 17:51:58

标签: .net regex

我正在使用这个简单的正则表达式来验证十六进制字符串:

^[A-Fa-f0-9]{16}$

如您所见,我正在使用量词来验证字符串是否长16个字符。我想知道我是否可以在同一个正则表达式中使用另一个量词来验证字符串长度为16或18(而不是17)。

4 个答案:

答案 0 :(得分:51)

我相信

^([A-Fa-f0-9]{2}){8,9}$

会奏效。

这很好,因为它可以推广到任何偶数长度的字符串。

答案 1 :(得分:9)

这只是一个16个字符的要求,之后有一个可选的2个字符:

^[A-Fa-f0-9]{16}([A-Fa-f0-9]{2})?$

括号可能不是必需的 - 我不足以知道一个正则表达的大师,我害怕。如果有人想编辑它,请随意...

答案 2 :(得分:5)

^(?:[A-Fa-f0-9]{16}|[A-Fa-f0-9]{18})$

答案 3 :(得分:0)

我可能会选择

/^[a-f0-9]{16}([a-f0-9]{2})?$/i

自己。我认为将正则表达式设置为不区分大小写并且仅列出一次字符范围更具可读性。也就是说,几乎所有这些答案都有效。