2012-01-06 6 views
12

방금 ​​Python을 배우기 시작했습니다. 특정 문자 및 특정 길이에 raw_input의 사용자 입력을 제한하는 방법을 알고 싶습니다. 예를 들어, 사용자가 문자 a-z 이외의 문자가 포함 된 문자열을 입력하면 사용자가 15 자 이상을 입력하면 오류 메시지를 표시하고 싶습니다.파이썬 입력 문자열을 특정 문자와 길이로 제한

처음에는 정규 표현식으로 할 수있는 것처럼 보입니다. 자바 스크립트에서 사용했기 때문에 약간 알고 있지만 파이썬에서 사용하는 방법을 모르겠습니다. 두 번째 것은 접근 방법을 잘 모르겠습니다. 누구든지 도와 줄 수 있습니까?

답변

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이 올바르게 언급 했으므로 다음을 적용하여이 작업을 수행 할 수 있습니다. 첫 번째 예제에서 정규 표현식은 특정 수의 문자 만 허용합니다. 하나

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" 
관련 문제