2014-11-27 5 views
0

나는이 내 정규식 코드 내가 이런 종류의 오류를 건너 왔어요하는 웹 개발, 을 배우고 안녕하세요 :예상치 못한 말

def valid_username(self , username): 
    USER_RE = re.compile(r"^[a-zA-Z0-9_-]{3,20}$") 
    if USER_RE.match(username): 
    return username 

def valid_password(self, password): 
    PASS_RE = re.compile(r"^.{3,20}$") 
    if PASS_RE.match(password) : 
    return password 

def valid_email(self, email): 
    EMAIL_RE = re.compile(r"^[\S][email protected][\S]+\.[\S\+$") 
    if EMAIL_RE.match(email): 
    return email 

그리고 이것은 오류 로그입니다 :

Traceback (most recent call last): 
    File "/home/suraj/google_appengine/lib/webapp2-2.3/webapp2.py", line 1511, in __call__ 
    rv = self.handle_exception(request, response, e) 
    File "/home/suraj/google_appengine/lib/webapp2-2.3/webapp2.py", line 1505, in __call__ 
    rv = self.router.dispatch(request, response) 
    File "/home/suraj/google_appengine/lib/webapp2-2.3/webapp2.py", line 1253, in default_dispatcher 
    return route.handler_adapter(request, response) 
    File "/home/suraj/google_appengine/lib/webapp2-2.3/webapp2.py", line 1077, in __call__ 
    return handler.dispatch() 
    File "/home/suraj/google_appengine/lib/webapp2-2.3/webapp2.py", line 547, in dispatch 
    return self.handle_exception(e, self.app.debug) 
    File "/home/suraj/google_appengine/lib/webapp2-2.3/webapp2.py", line 545, in dispatch 
    return method(*args, **kwargs) 
    File "/home/suraj/Google_Apps/greetings/greetings.py", line 118, in post 
    valid_Email = self.valid_email(email) 
    File "/home/suraj/Google_Apps/greetings/greetings.py", line 91, in valid_email 
    EMAIL_RE = re.compile(r"^[\S][email protected][\S]+\.[\S\+$") 
    File "/usr/lib/python2.7/re.py", line 190, in compile 
    return _compile(pattern, flags) 
    `File "/usr/lib/python2.7/re.py", line 244, in _compile 
    raise error, v # invalid expression 

오류! ADV에서

도움말 Nedded 감사 정규 표현식의 예상치 못한 종료 ance

답변

2

EMAIL_RE = re.compile(r"^[\S][email protected][\S]+\.[\S\+$") 정규식에 ] 브래킷을 넣지 못했습니다.

re.compile(r"^[\S][email protected][\S]+\.[\S]+$") 

문자 클래스는 필요하지 않습니다.

re.compile(r"^\[email protected]\S+\.\S+$") 

\S+은 하나 이상의 공백이 아닌 문자와 일치합니다.