从文本读出的字符串中如何识别十六进制数值:
十六进制字符串格式: 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)"
这个不能识别是否是0x打头,^定死了是a-z/A-Z/0-9打头的。