C#如何判断一个字符串是16进制字符串

lgr0106 2012-12-29 09:56:05
小弟最近要做MAC地址的合法性检测……现在卡在一个很简单的问题死活绕不出去了……就是我有一个字符串,我需要判断这个字符串是否是由16进制数(数字1到9,不区分大小写的A到F)组成,我能想到的方法是从字符串中一个一个的循环截取出其中的每一个字符,再利用一些正则表达式来判断,请问下各位大大……判断的代码应该怎么写啊,麻烦给下大致的代码,谢谢!
...全文
1456 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyingju001 2013-08-29
  • 打赏
  • 举报
回复
引用 楼主 lgr0106 的回复:
小弟最近要做MAC地址的合法性检测……现在卡在一个很简单的问题死活绕不出去了……就是我有一个字符串,我需要判断这个字符串是否是由16进制数(数字1到9,不区分大小写的A到F)组成,我能想到的方法是从字符串中一个一个的循环截取出其中的每一个字符,再利用一些正则表达式来判断,请问下各位大大……判断的代码应该怎么写啊,麻烦给下大致的代码,谢谢!
我现在也遇到类似的问题,我的mac是16进制的 41 28 E5 37 00 00 4C,请问怎么往数据库存储?
liyingju001 2013-08-29
  • 打赏
  • 举报
回复
引用 3 楼 BenBenBears 的回复:
[quote=引用 1 楼 caozhy 的回复:] string a = "00ff0121a"; string b = "abcdefg ok"; bool isHexa = Regex.IsMatch(a, "^[0-9A-Fa-f]+$"); bool isHexb = Regex.IsMatch(b, "^[0-9A-Fa-f]+$");
不能用作判断数据是否是十六进制吧?比如说31 31 31 和18 两个字符串都是符合正则表达式。比如说我们收到数据31,我们怎么去判断对方是以十六进制的方式发送还是字符的形式发送?请指教。谢谢。[/quote] 我现在也遇到类似的问题,我的mac是16进制的 41 28 E5 37 00 00 4C,请问怎么往数据库存储?
BenBenBears 2013-08-27
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
string a = "00ff0121a"; string b = "abcdefg ok"; bool isHexa = Regex.IsMatch(a, "^[0-9A-Fa-f]+$"); bool isHexb = Regex.IsMatch(b, "^[0-9A-Fa-f]+$");
不能用作判断数据是否是十六进制吧?比如说31 31 31 和18 两个字符串都是符合正则表达式。比如说我们收到数据31,我们怎么去判断对方是以十六进制的方式发送还是字符的形式发送?请指教。谢谢。
  • 打赏
  • 举报
回复
(?i)^[0-9a-f]+$
threenewbee 2012-12-29
  • 打赏
  • 举报
回复
string a = "00ff0121a"; string b = "abcdefg ok"; bool isHexa = Regex.IsMatch(a, "^[0-9A-Fa-f]+$"); bool isHexb = Regex.IsMatch(b, "^[0-9A-Fa-f]+$");

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧