正则表达式使用OR限制十六进制数字长度

时间:2011-11-24 11:29:07

标签: hex expression

我想将十六进制数的长度限制为4或8.例如:

0x0001有效(4个十六进制数字)

0x0001001F有效(8个十六进制数字)

0x00012无效(5个十六进制数字)

我可以使用

验证长度为n(n为4或8)的十六进制数
Regex.IsMatch("0x0001", "^0x[0-9a-fA-F][{n}$");

如何实现这个OR运算,比如4或8,而不是4到8?

1 个答案:

答案 0 :(得分:3)

“或”在正则表达式中由|表示。因此,你的正则表达式看起来像

0x([0-9a-fA-F]{4}|[0-9a-fA-F]{8})

另一种方法是使用?使最后四位数字可选。这将导致

0x[0-9a-fA-F]{4}([0-9a-fA-F]{4})?