正则表达式使用 OR 限制十六进制数字长度
我想将十六进制数字的长度限制为 4 OR 8。例如:
0x0001
有效(4 个十六进制数字)
0x0001001F
有效(8 个十六进制数字)
0x00012
无效(5 个十六进制数字)
我可以通过使用如何实现此 OR 运算来验证长度为 n 的十六进制数字(n 是 4 或 8)
Regex.IsMatch("0x0001", "^0x[0-9a-fA-F][{n}$");
,例如4或8,而不是从4到8?
I want to limit the length of hex number to 4 OR 8. For example:
0x0001
is valid (4 hex numbers)
0x0001001F
is valid (8 hex numbers)
0x00012
is invalid (5 hex numbers)
I can validate a hex number with length of n (n is 4 or 8) by using
Regex.IsMatch("0x0001", "^0x[0-9a-fA-F][{n}$");
How to achieve this OR operation, say either 4 or 8, not from 4 to 8?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
“或”在正则表达式中用
|
表示。因此,您的正则表达式看起来像另一种方法是使用
?
将最后四位数字设为可选。这会导致"Or" is represented by
|
in regex. Your regex would therefore look likeAnother way would be to make the last four digits optional using
?
. This would lead to