반응형

파이썬 정규식 패턴 예제 

 

글. 수알치 오상문 

 

import re
# 허용하는 글자로만 이루어진 패턴 
reg1 = re.compile("^[a-zA-Z0-9+-_.!@#$%^&*()]+$")  # 허용하는 글자 패턴
                # 해당하는 글자로 시작해서 끝 글자까지 모두 같은 패턴인 경우 
if reg1.match("abcd!@#$123") != None: # 패턴 일치하면 
    print("정규식에 맞습니다.") # 출력    
else:
    print("정규식과 다릅니다.")
if reg1.match("abcd'") != None:
    print("정규식에 맞습니다.")    
else:
    print("정규식과 다릅니다.") # 출력 : 작은 따옴표는 금지 대상  
# 이메일 정규식 패턴 
p = re.compile( '^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$')
emails = ['python@mail.example.com', 'python+kr@example.com',        # 올바른 형식
          'python-dojang@example.co.kr', 'python_10@example.info',   # 올바른 형식
          'python.dojang@e-xample.com',                              # 올바른 형식
          '@example.com', 'python@example', 'python@example-com']    # 잘못된 형식
for email in emails:
    print(p.match(email) != None, end=' ')
print()
# 한글로만 이루어진 패턴 
reg = re.compile('^[ㄱ-힣]+$')  # 한글로만 이루어진 패턴
if reg.match("한글abcd") != None: # 패턴 일치하면 
    print("정규식에 맞습니다.")    
else:
    print("정규식과 다릅니다.") # 출력 
if reg.match("한글입니다") != None: # 패턴 일치하면 
    print("정규식에 맞습니다.") # 출력    
else:
    print("정규식과 다릅니다.")
# 전화번호가 포함되었는가 : '([0-9]{4})-([0-9]{2})-([0-9]{2})'
# 전화번호 형식과 일치하는가: '^([0-9]{4})-([0-9]{2})-([0-9]{2})$'

 

 

줄임 표현 

  • \d : 숫자인 경우, [0-9]와 같다
  • \D: 숫자가 아닌 경우, [^0-9] 와 같다.
  • \s: 공백 문자인 경우. 띄어쓰기나, 탭 (\t ), 새로운 줄(\n, \r)인 경우
  • \S : 공백 문자가 아닌 경우
  • \w: 숫자 및 알파벳 문자인 경우. [a-zA-Z0-9_] 와 같다
  • \W: 숫자 및 알파벳 문자가 아닌 경우. [^a-zA-Z0-9_] 와 같다

 

메타문자 : 기능을 수행하는 문자

. ^ $ * + ? \ | ( ) { } [ ]

반응형

+ Recent posts