我需要解析表示時間段的字符串的內容。字符串的格式是值/單位,例如:1s,60min,24h。我會將實際值(一個int)和單位(一個str)分隔開來的變量。將時間段字符串轉換爲值/單元對
目前,我不喜歡這樣寫道:
def validate_time(time):
binsize = time.strip()
unit = re.sub('[0-9]','',binsize)
if unit not in ['s','m','min','h','l']:
print "Error: unit {0} is not valid".format(unit)
sys.exit(2)
tmp = re.sub('[^0-9]','',binsize)
try:
value = int(tmp)
except ValueError:
print "Error: {0} is not valid".format(time)
sys.exit(2)
return value,unit
然而,這不是理想的象外之象1M0也(錯誤地)驗證(value=10
,unit=m
)。
什麼是驗證/解析此輸入的最佳方法?
我會在正則表達式的開始和結尾處包含空格,而不是使用'strip',並且在值和單位之間也包含可選的空白。從函數調用'exit'並不酷,只是引發包含錯誤消息的異常。 –
我使用'sys.exit()'回顯OP;我非常同意。 –