정규표현식

장서연·2021년 6월 8일
0

https://www.youtube.com/watch?v=dTDoTR0MXjU
본 포스트는 유튜브 조코딩님의 정규표현식 영상을 보며 공부한 것을 정리한 것 입니다.

정규 표현식 사용하는법

파이썬에서 정규 표현식을 지원하는 re 모듈을 임포트한다.

import re
p = re.compile("ab*")

사용하고 싶은 정규표현식을 re.compile함수의 인수로 넣어주면, 패턴객체가 리턴된다. 이 패턴 객체를 사용하여 원하는 문자열의 비교를 할 수 있다!

패턴 객체를 이용하는 방법에는 4가지가 있다.

Dot(.)

a.b
  • 줄바꿈 제외한 모든 문자와 매치
  • 위 예에서 "aab" "a4b" 가 매치
  • "abc"는 "a"문자와 "b"문자 사이에 어떤 문자 하나라도 있어야 하는 위 정규식과 일치하지 않음

반복(*)

ca*t
  • "ct" 는 "a" 가 0번 반복되므로 매치
  • "cat" 는 "a" 가 0번이상 반복되어 매치 (1번)
  • "caat" 는 "a" 가 0번이상 반복되어 매치 (3번)

반복(+)

ca+t
  • "ct" 는 "a" 가 0번 반복되므로 매치되지않음
  • "cat" 는 "a" 가 1번이상 반복되어 매치 (1번)
  • "caat" 는 "a" 가 1번이상 반복되어 매치 (3번)

반복({m,n})

ca{2}t
  • "cat"는 "a"가 한번만 반복되어 매치되지 않음
  • "caat"는 "a"가 2번 반복되어 매치

중간에 컴마가 들어간 ca{2,5}t는 중간에 a가 2이상 5이하 개수만큼 들어간 경우를 나타낸다.

import re
# match
p = re.compile('[a-z]+') # a부터 z까지 어떤 문자열 반복(+)패턴객체 생성
m = p.match("python") # 검사하고자하는 문자열
print(m) # 매치됨. 
m = p.match("3 python") # 이 경우는 매치되지 않음 None
print(m)

# search
p = re.compile('[a-z]+')
m = p.search("python") # 검사하고자하는 문자열
print(m) # 매치됨. 
m = p.search("3 python") # find 해주기 때문에, 일치하는 곳의 부분 찾아 반환
print(m) 

0개의 댓글

관련 채용 정보