的我想要做的Python如下:蟒蛇正則表達式驗證類型的字符串
- 驗證,如果一個UTF8字符串是一個整數。
- 驗證UTF8字符串是否爲浮點數。
- 驗證UTF8字符串是否具有長度(1-255)。
- 驗證UTF8字符串是否爲有效日期。
我完全是新的python,我相信這應該用正則表達式來完成,除了可能是最後一個。感謝您的幫助!
的我想要做的Python如下:蟒蛇正則表達式驗證類型的字符串
我完全是新的python,我相信這應該用正則表達式來完成,除了可能是最後一個。感謝您的幫助!
正則表達式是不是在這裏一個很好的解決方案。
驗證如果一個UTF8字符串是一個整數:
try:
int(val)
is_int = True
except ValueError:
is_int = False
驗證如果一個UTF8字符串是一個浮動:與上面相同,但具有float()
。
驗證如果一個UTF8字符串是長度(1-255)的:
is_of_appropriate_length = 1 <= len(val) <= 255
驗證如果一個UTF8字符串是一個有效的日期:這是不平凡的。如果你知道正確的格式,你可以使用time.strptime()
這樣的:
# Validate that the date is in the YYYY-MM-DD format.
import time
try:
time.strptime(val, '%Y-%m-%d')
is_in_valid_format= True
except ValueError:
is_in_valid_format = False
編輯:另一件事要注意。由於您特別提到了UTF-8字符串,因此首先將它們解碼爲Unicode是有意義的。這將這樣做:
my_unicode_string = my_utf8_string.decode('utf8')
這是有趣的是,試圖將Unicode字符串轉換爲使用int()
一個整數,例如,當你不侷限於在大多數使用了「西方阿拉伯數字」數字世界。 int(u'١٧')
和int(u'१७')
將正確解碼爲17,即使它們分別是印度語阿拉伯語和德文吉語數字。
爲什麼要使用正則表達式使用?我相信它會更慢,更麻煩。
該int()
和float()
方法或更好的isdigit()
方法在這裏很好地工作。
a = "03523"
a.isdigit()
>>> True
b = "963spam"
b.isdigit()
>>> False
對於問題3,你的意思是 「驗證,如果一個UTF8字符串的長度是(1-255)的一個數字」?
爲什麼不:
def validnumber(n):
try:
if 255 > int(n) > 1:
return True
except ValueError:
return False
可能dublicate:http://stackoverflow.com/questions/2103071/determine-the-type-of-a-value-which-is-represented-as-string-in-python – 2010-02-02 12:27:45
是的,那一個很有幫助以及。謝謝! – khelll 2010-02-02 15:10:11
如果你有問題,並用正則表達式解決它,現在你有兩個問題! – 2010-02-02 15:28:22