파이썬(Python)/문법

(python)정규표현식 예제로 이해하기 - 아이디,이메일,전화번호,포트

끄적끄적아무거나 2021. 8. 11. 08:57
반응형

(python)정규표현식 예제로 이해하기

 

정규식은 일련의 규칙을 이용해서 검색이나 잘못된 양식을 선별할 때 사용한다. 아래 예제들을 통해 기본적인 정규 표현식을 이해해 보자 

 

참고사항(역슬래시 + 문자)

 

\d : [0-9]와 동일

\D : [^0-9]와 동일

\w : [a-zA-Z0-9_]와 동일

\W : [^a-zA-Z0-9_]와 동일

 


아이디(ID) Regular Expression

 

[ - ] 안은 범위를 의미한다.

예를 들어 [a - c] 는 a,b,c를 가능하게 보는 것이다.

[A-za-z]는 소문자 대문자 모두 가능하다.

{5,15} 는 최소 5개~15개 반복되어야 한다.

 

코드>>

import re

ID_regex = re.compile("([A-za-z]{5,15})")
ID_input = input("아이디를 입력하세요 (최소5자에서 15자, 시작은 영어문자로해야함): ")
ID_validation = ID_regex.search(ID_input.replace(" ",""))

if ID_validation:
    print("It's vaild")
else:
    print("It's invaild")

 

결과>>

아이디를 입력하세요 (최소5자에서 15자, 시작은 영어문자로해야함): hello123
It's vaild

 


이메일(email) 정규표현식으로 검사하기

 

[ - ] 안은 범위를 의미한다.

예를 들어 [a - c] 는 a,b,c를 가능하게 보는 것이다.

+ 는 1개 이상을 의미한다.

역슬래시 점 으로된 \. 는 원래 .은 어떤값이든 받는 건데 그냥 점을 쓰고 싶을 경우 역슬래시를 같이 써주면 된다.

 

코드>>

import re

email_regex = re.compile("([A-Za-z]+[A-Za-z0-9]+@[A-Za-z]+\.[A-Za-z]+)")
# email_regex = re.compile("(\.)")
email_input = input("이메일을 입력하세요 (ex: abc0123@gmail.com)): ")
email_validation = email_regex.search(email_input.replace(" ",""))

if email_validation:
    print("It's vaild")
else:
    print("It's invaild")

 

결과>>

이메일을 입력하세요 (ex: abc0123@gmail.com)): abc123@abc.com
It's vaild

 


전화번호 정규표현식

 

^(01) 꺽쇠는 01로 시작해야한다는 뜻이고 

\d{1} 은 정수로 하나를 받는거고 {3,4}는 3~4개를 받는 것이다.

 

코드>>

import re

phone_regex = re.compile("^(01)\d{1}-\d{3,4}-\d{4}$")
# email_regex = re.compile("(\.)")
phone_input = input("전화번호를 입력하세요 (ex: 010-123-1234)): ")
phone_validation = phone_regex.search(phone_input.replace(" ",""))

if phone_validation:
    print("It's vaild")
else:
    print("It's invaild")

 

결과>>

전화번호를 입력하세요 (ex: 010-123-1234)): 011-1234-1234
It's vaild

 

 

 


포트(Port) 범위 입력 받기 

 

[ - ] 안은 범위를 의미한다. 

예를 들어 [a - c] 는 a,b,c를 가능하게 보는 것이다. [0 - 9] 는 0~9사이 모든 수가 가능한것이다.

 

+ 는 반복으로 한번이상 반복 가능한것이다. 

 

코드>>

import re

port_regex = re.compile("([0-9]+)~([0-9]+)")
port_input = input("포트 범위를 입력하세요 (EX:0~65535): ")
port_validation = port_regex.search(port_input.replace(" ",""))

if port_validation:
    print("It's vaild")
else:
    print("It's invaild")

 

결과>>

포트 범위를 입력하세요 (EX:0~65535): 0~300
It's vaild

 

 

 

 

반응형