C#正则表达式匹配0到FE之间的十六进制数

时间:2016-02-18 13:20:40

标签: c# regex

我想在c#中使用正则表达式来验证0到FE之间的十六进制数(即十进制中的0到254)(不区分大小写)。

此处用户可以输入两位数的单位数字。例如,数字9为09。

感谢任何帮助。

注意:我们不需要验证' 0x'这里只是0到FE之间的范围。

3 个答案:

答案 0 :(得分:4)

试试这个

^(([fF][0-9a-eA-E])|([0-9a-eA-E]?[0-9a-fA-F]))$

一些解释:

此正则表达式包含2个逻辑部分。首先([fF][0-9a-eA-E])匹配数字以“f”或“F”开头的情况,根据原始标准,在这种情况下只有0-9和A-E可用,以拒绝“FF”。 第二部分([0-9a-eA-E]?[0-9a-fA-F])处理所有其他情况,第一个符号是0-9或AE(F由第一部分覆盖)或不存在(以覆盖单个符号数字),第二个符号是任何有效的十六进制(0-9) AF)。

答案 1 :(得分:0)

您可以使用

^(?:[0-9a-eA-E]?[0-9a-fA-F]|[fF][0-9a-eA-E])$

它可以使用或不使用前导零,大写或小写字符。

Explanation

Visualization

答案 2 :(得分:-1)

也许这就是你想要的?

([0-9A-F]{1}[0-9A-E]{1})