不同進位制的數字格式校驗
阿新 • • 發佈:2018-11-05
#十進位制校驗
def checkdec(dec):
matchobj = re.match(r'(0[dD])?[0-9]+$',dec)
if matchobj:
return True
else:
return False
#二進位制校驗
def checkbin(bin):
matchobj = re.match(r'(0[bB])?[0-1]+$',bin)
if matchobj:
return True
else:
return False
#八進位制校驗
def checkoct (oct):
matchobj = re.match(r'(0[oO])?[0-7]+$',oct)
if matchobj:
return True
else:
return False
#十六進位制校驗
def checkhex(hex):
matchobj = re.match(r'(0[xX])?[0-9a-fA-F]+$',hex)
if matchobj:
return True
else:
return False
測試用例
class IPv4MethodsTest (unittest.TestCase):
def test_checkdec(self):
self.assertEqual(IPNumConvertMethods.checkdec('123'),True)
self.assertEqual(IPNumConvertMethods.checkdec('a23'), False)
def test_checkbin(self):
self.assertEqual(IPNumConvertMethods.checkbin('1010'),True)
self.assertEqual( IPNumConvertMethods.checkbin('0b1010'), True)
self.assertEqual(IPNumConvertMethods.checkbin('0bb010'), False)
def test_checkoct(self):
self.assertEqual(IPNumConvertMethods.checkoct('12'), True)
self.assertEqual(IPNumConvertMethods.checkoct('0o12'), True)
def test_checkhex(self):
self.assertEqual(IPNumConvertMethods.checkhex('a'), True)
self.assertEqual(IPNumConvertMethods.checkhex('0xa'), True)