私は最初の本当のプログラミング言語であるPythonを学び始めたところです。 raw_input
のユーザー入力を特定の文字と特定の長さに制限する方法を知りたい。たとえば、ユーザーがa-z
以外の文字を含む文字列を入力した場合にエラーメッセージを表示し、ユーザーが15文字以上を入力した場合にエラーメッセージを表示します。
最初のものは正規表現でできることのように思えますが、Javascriptでそれらを使用したことがあるので少し知っていますが、Pythonでそれらを使用する方法はわかりません。 2つ目は、どのようにアプローチするかわかりません。誰でも助けることができますか?
質問1:特定の文字に制限する
あなたは正しい、これは 正規表現 で簡単に解決できます:
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:特定の長さに制限する
ティムが正しく述べたように、最初の例の正規表現を適用して、特定の数の文字のみを許可することでこれを行うことができます。次のように長さを手動で確認することもできます。
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"