我剛開始學習我的第一個真正的編程語言Python。我想知道如何將用戶在raw_input
中的輸入約束爲某些字符和某個長度。例如,如果用戶輸入的字符串除字母a-z
之外的任何字符,我想顯示一條錯誤消息,並且如果用戶輸入的字符超過15個,我想顯示一條。將Python輸入字符串限制爲某些字符和長度
第一個看起來像是我可以用正則表達式做的事情,我知道這一點,因爲我已經在Javascript中使用過它們,但我不確定如何在Python中使用它們。第二個,我不知道如何處理它。誰能幫忙?
我剛開始學習我的第一個真正的編程語言Python。我想知道如何將用戶在raw_input
中的輸入約束爲某些字符和某個長度。例如,如果用戶輸入的字符串除字母a-z
之外的任何字符,我想顯示一條錯誤消息,並且如果用戶輸入的字符超過15個,我想顯示一條。將Python輸入字符串限制爲某些字符和長度
第一個看起來像是我可以用正則表達式做的事情,我知道這一點,因爲我已經在Javascript中使用過它們,但我不確定如何在Python中使用它們。第二個,我不知道如何處理它。誰能幫忙?
問題1:限制對某些字符
你是對的,這是很容易與regular expressions解決:
import re
input_str = raw_input("Please provide some info: ")
if not re.match("^[a-z]*$", input_str):
print "Error! Only letters a-z allowed!"
sys.exit()
問題2:限制一定長度
正如Tim所說的,你可以通過調整第一個例子中的正則表達式只允許一定數量的字母。您也可以手動檢查這樣的長度:
input_str = raw_input("Please provide some info: ")
if len(input_str) > 15:
print "Error! Only 15 characters allowed!"
sys.exit()
或兩者之一:
import re
input_str = raw_input("Please provide some info: ")
if not re.match("^[a-z]*$", input_str):
print "Error! Only letters a-z allowed!"
sys.exit()
elif len(input_str) > 15:
print "Error! Only 15 characters allowed!"
sys.exit()
print "Your input was:", input_str
正則表達式還可以限制字符數。
r = re.compile("^[a-z]{1,15}$")
給你,只有匹配如果輸入小寫完全ASCII字母和1到15個字符長的正則表達式。
if any([ i>'z' or i<'a' for i in raw_input]):
print "Error: Contains illegal characters"
elif len(raw_input)>15:
print "Very long string"