正则表达式判断字符串是否为十六进制

从文本读出的字符串中如何识别十六进制数值:

十六进制字符串格式: 0x12, 0x1a, a0, ab

可能包含0x也由可能不包含,如果不包含0x,又不包含a~z/A~Z/0~9那么就认为不是十六进制

下面这样不行:
C#:
string pattern = @"\b(0[xX])?[A-Fa-f0-9]+\b";
bool isHexNum = Regex.IsMatch(str, pattern);

遇到下面情况不行:

(1) "0x3a@0x01"

(2) "0)"

正则表达式判断一个字符串是否为16进制数的Java程序如下(不知道是不是你想要的)publicclassAA{publicstaticvoidmain(String[]args){Strings="123bf";Stringregex="^[A-Fa-f0-9]+$";if(s.matches(regex)){System.out.println(s.toUpperCase()+"是16进制数");}else{System.out.println(s.toUpperCase()+"不是16进制数");}}}运行结果123BF是16进制数追问

这个不能识别是否是0x打头,^定死了是a-z/A-Z/0-9打头的。

温馨提示:答案为网友推荐,仅供参考
相似回答