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

C#正则表达式匹配0到FE之间的十六进制数,c#,regex,C#,Regex,我需要一个c#中的正则表达式,它验证0到FE之间的十六进制数(即十进制中的0到254)(不区分大小写) 在这里,用户可以输入两位数中的一位数。例如,编号9为09 感谢您的帮助 注意:这里不需要验证“0x”,只需验证0到FE之间的范围。试试这个 ^(([fF][0-9a-eA-E])|([0-9a-eA-E]?[0-9a-fA-F]))$ 一些解释: 这个正则表达式包含2个逻辑部分。第一个([fF][0-9a-eA-E])匹配数字以“f”或“f”开头的情况,根据原始标准,在这种情况下,只有0-9

我需要一个c#中的正则表达式,它验证0到FE之间的十六进制数(即十进制中的0到254)(不区分大小写)

在这里,用户可以输入两位数中的一位数。例如,编号9为09

感谢您的帮助

注意:这里不需要验证“0x”,只需验证0到FE之间的范围。

试试这个

^(([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或A-E(F由第一部分覆盖)或不存在(覆盖单个符号数),第二个符号对十六进制(0-9a-F)有效。

也许这就是您想要的

([0-9A-F]{1}[0-9A-E]{1})
你可以用

^(?:[0-9a-eA-E]?[0-9a-fA-F]|[fF][0-9a-eA-E])$
它可以使用或不使用前导零、大写或小写字符


您想使用。。。Regex??可能重复建议您尝试转换为int(参见上面的链接)并检查链接。如果字符串不正确,请使用TryParse。我不想转换字符串,我使用正则表达式模式来验证字符串。@Mahendra但为什么?通常,您会使用
Parse
Convert
TryParse
——甚至只是为了验证<代码>正则表达式在大多数情况下通常是“杀伤力过大”的-它甚至可能比TryParse执行得慢。无论如何,如果你真的需要检查
字符串
,而不实际转换
字符串
,我也曾经有过这样的愿望。对于某些特殊情况,这确实是有益的。看看这个:也许你也想解释一下你的上下文……这需要使用两个字符。因此,这将使有效输入
8
失败。它还匹配逗号(
),并且没有锚,它匹配任何包含可以作为2位十六进制数传递的内容的字符串(例如
nnnnnn0000000000
)。@ryanyyu我一定误读了原文,我认为它必须是2位数字。从Mahendra看起来想要的结果来看,输入只能是2个字符。谢谢Alex,我用不同的数字进行了测试,结果成功了。你能解释一下这个正则表达式吗?我添加了一些解释。