2012-01-06 8 views
12

初めてPythonの最初の本当のプログラミング言語を学び始めました。私は特定の文字と特定の長さにraw_inputのユーザー入力を制限する方法を知りたいです。たとえば、ユーザーが文字「a-z」以外の文字列を入力した場合にエラーメッセージを表示したいと思います。ユーザが15文字以上入力すると、その文字列を表示したいと思います。Pythonの入力文字列を特定の文字と長さに制限する

最初のものは、私が正規表現で行うことのできるもののようですが、私はJavascriptのものでそれらを使用しているため少しのことを知っていますが、Pythonでそれらを使用する方法がわかりません。第二のもの、私はそれにどのように接近するのか分からない。誰も助けることができますか?

答えて

12

質問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が正しく言及したように、これを行うには、正規表現は最初の例では特定の文字数だけを許可します。 1に

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 
13

正規表現では、文字数を制限することもできます。

r = re.compile("^[a-z]{1,15}$") 

はあなただけの入力が長く、完全に小文字のASCII文字と1〜15文字である場合に一致する正規表現を提供します。

0
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" 
関連する問題