我想将十六进制数的长度限制为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?
答案 0 :(得分:3)
“或”在正则表达式中由|
表示。因此,你的正则表达式看起来像
0x([0-9a-fA-F]{4}|[0-9a-fA-F]{8})
另一种方法是使用?
使最后四位数字可选。这将导致
0x[0-9a-fA-F]{4}([0-9a-fA-F]{4})?