정규표현식


#!/usr/bin/python3
# 정규표현식
# by Elex (http://python.elex.pe.kr/)

import re

def main():
   
    # 패턴 컴파일
    pattern = re.compile("([\.0-9a-z_-]+)@([0-9a-z_-]+)(\.[0-9a-z_-]+){1,2}" , re.IGNORECASE)
   
    txt = "someone's email address is email@email.com "
    # 찾기
    match = re.search(pattern, txt)
    # 또는
    match = re.search("([\.0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}" , txt)
       
    if match:   
        print('{} is valid email address.' .format(match.group()))

    # 바꾸기
    print(re.sub("([\.0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}", "*****", txt))
    # 또는
    if match:
        print(txt.replace(match.group(), "*****"))
              
if __name__ == "__main__": main()


파이썬에서 정규표현식 관련 기능은 re라는 모듈을 통해서 제공된다.
패턴 문자열을 컴파일한 후에 search() 메서드를 사용할 수도 있고, search() 메서드에 패턴 문자열을 직접 지정해서 사용할 수도 있다. search() 메서드는 일치 결과를 반환하는데 일치하지 않으면 None을 반환한다.


댓글

이 블로그의 인기 게시물

Project Euler - 3

메인 스크립트

예외 처리