반응형

여기서는 파이썬의 모듈인 re가 무엇인지 알아보고 간단한 사용 방법을 확인해 보겠습니다. 

 

re란?

 

re는 파이썬의 표준 라이브러리에 포함된 모듈입니다. 파이썬으로 정규표현식을 처리를 할 때는 보통 re모듈을 사용합니다. 정규표현식 패턴을 사용해서 문자열을 추출하거나, 치환하거나 분리할 수 있습니다. 

 

 

compile()이란?

 

compile()은 정규표현식 패턴을 컴파일해서 객체를 돌려줍니다. 

※컴파일이란 컴퓨터가 읽을 수 있는 언어로 바꾸어준다는 의미입니다.

import re
regex = re.complie('a')

print(regex)
#출력 결과⇨  re.compile('a')

print(type(regex))
#출력 결과⇨  <class 're.Pattern'>

 

위에서 type를 출력한 결과를 보면 객체가 re.Pattern이라는 클래스 형이라는 것을 알 수 있습니다. 

 

match() 메서드란?

 

match메서드는 문자열의 앞부분이 패턴과 일치하는지를 확인을 해줍니다. 앞부분이 매치하는지를 확인한다는 것은 아래의 출력결과를 보면 알 수 있습니다.  

 

import re

regex = re.compile('a')

print(regex.match('ab'))
#출력 결과⇨ <re.Match object; span=(0, 1), match='a'>

print(regex.match('ba'))
#출력 결과⇨ None

ab의 경우 앞부분이 일치했기 때문에 매치하고 있다는 결과(매치 객체)를 반환하고 있지만 ba의 경우 앞부분이 일치하지 않고 있기 때문에 None을 반환하고 있습니다 

 

 

이메일 주소 형식과 일치하는지 확인하기(메타 문자: [])

 

정규표현식을 가장 많이 사용하는 패턴 중 하나는 이메일 형식에 일치하는지 확인하는 것입니다. 이메일 형식을 체크하기 위해서 여기서는 메타문자인 []를 사용하겠습니다. 

 

메타문자 '[]' 란?

 

메타 문자 '[]'를 정규표현식 패턴으로 사용하면 [] 사이에 있는 문자 중 한 개 이상과 매치라는 의미로 사용 됩니다. 

import re

regex = re.compile('[abc]')

print(regex.match('ab'))
#출력 결과⇨ <re.Match object; span=(0, 1), match='a'>

print(regex.match('ba'))
#출력 결과⇨ <re.Match object; span=(0, 1), match='b'>

print(regex.match('da'))
#출력 결과⇨ None

위의 출력 결과를 보면 첫 번째는 앞부분이 a와 매치했기 때문에 매치 객체를 반환하고 있습니다. 두 번째는 b와 매치하고 있기 때문에 매치 객체를 반환하고 있습니다. 

 

하지만 'da'의 경우 a나 b나, c가 첫 부분과 일치하지 않기 때문에 None이 반환됩니다. 위의 복습이지만 match 메서드의 경우 첫 부분이 일치하는지 확인하기 때문에 뒤쪽에 a가 있어도 매치되지 않습니다. 

 

이메일 주소 형식과  일치하는지 확인하기 

 

메타문자 안에 -를 사용해서 [a-z] 같이 쓰면 a부터 z까지의 모든 문자를 의미합니다. 거기에 +를 붙여서 [a-z]+라고 쓰면 [a-z]이 한 번 이상 오는 것을 의미합니다. 

.에 역슬러시를 같이 쓴 것은 .(점)도 메타문자이기 때문에 메타문자가 아니라 .으로만 쓰겠다는 의미로 붙여주고 있습니다.  

import re

regex = re.compile('([a-z]+)@([a-z]+)\.com')

print(regex.match('aaa@bbb.com'))
출력결과⇨ <re.Match object; span=(0, 11), match='aaa@bbb.com'>

print(regex.match('aaabbbcom'))
출력결과⇨ None

위와 결과에서 알 수 있는 것처럼 소문자@소문자.com 형식이 아닌 경우는 매치가 되지 않습니다. 여기서는 이해를 돕기 위해서 정규표현식의 패턴을 소문자만 포함하는 것으로 했지만 실제로 사용되는 정규표현식은 훨씬 복잡합니다. 더 자세히 알고 싶은 분들은 아래의 글을 참고해 주세요. 

 

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

 

 

 

같이 읽으면 좋은 글

 

 

 

【Python 활용 방법 총정리】 파이썬으로 할 수 있는 것은?

파이썬(Python)은 최근 가장 큰 인기를 얻고 있는 프로그래밍 언어입니다. 하지만 아직 프로그래밍에 익숙하지 않다면 자연스럽게 이런 의문이 떠오릅니다. 파이썬으로는 어떤 걸 할 수 있어? 파

easytoread.tistory.com

 

파이참 무료와 유료 버전의 차이 | 어느 쪽을 사용해야 할까?

파이참(PyCharm)에는 아래의 3가지 버전이 있습니다. Professinal(프로페셔널) Community(커뮤니티) Educatinal(에듀케이셔널) 이 중 Professinal은 유료 버전이고 Community와 Educational은 무료 버전입니다...

easytoread.tistory.com

 

파이참 무료 다운로드 | 설치 방법 | 기본 사용 방법

파이참은 Python 유저들에게 가장 큰 인기를 얻고 있는 통합 개발 환경(IDE) 중 하나입니다. 여기서는 파이참 무료 버전(Community)을 다운로드 하는 법과 설치 방법 그리고 기본 사용 방법까지 확인해

easytoread.tistory.com

 

파이썬(Python)과 비단뱀 | 파이썬이라는 이름의 유래

Python은 최근 가장 많은 인기를 얻고 있는 프로그래밍 언어입니다. 언어를 공부하다보면 한 번쯤은 'Python이라는 게 무슨 의미지?', 'Python란 이름은 어디에서 나온 거지?'라는 의문을 가지게 되는

easytoread.tistory.com

 

【Python】 파이썬 이중(2차원) 리스트 만들고 요소에 접근하기

파이썬의 리스트에는 리스트의 요소로 다른 리스트를 넣을 수가 있습니다. 이렇게 리스트 안에 리스트를 넣은 것을 다차원 리스트 또는 다중리스트라고 부릅니다. 여기서는 이중(2차원)리스트

easytoread.tistory.com

 

【Python】 파이썬 이중 for문 + 리스트 컴프리핸션

파이썬 이중 for문으로 2D 리스트 만들기 2D 리스트란 리스트 안에 리스트가 들어가 있는 상태의 리스트를 의미합니다. 예를 들면 아래와 같습니다. [ [0, 1, 2, 3, 4] [5, 6, 7, 8, 9] [10, 11, 12, 13, 14] [15,..

easytoread.tistory.com

 

【파이썬 랜덤 리스트 생성】 Python 리스트 랜덤 넘버(무작위 숫자)로 채우기

for 문을 사용해서 파이썬 랜덤 리스트 생성 아래와 같은 방식으로 리스트에 무작위 숫자를 넣을 수 있습니다. import random my_list = [] for value in range(0, 20): my_list.append(random.randint(0,100)) 무..

easytoread.tistory.com

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기