정구리의 우주정복

파이썬 정규 표현식 본문

PYTHON/STUDY

파이썬 정규 표현식

Jungry_ 2021. 1. 15. 13:43
반응형

정규표현식에 대해서 알아보자 !

 

직접 입력해보고 결과를 출력해보며 공부하는 것을 추천 !

 

정규표현식 기본 사용 법


#정규표현식
import re
r = re.compile("a.c") #. 는 한개의 임의의 문자를 나타냄 abc,avc,anc .. 모두 매치가 됨
print(r.search('abc'))

r = re.compile('ab?c') #앞의 문자가 존재할수도 있고 안할수도 있다 abc,ac 모두 매치가 됨
print(r.search('abc'))
print(r.search('ac'))

r = re.compile('ab*c') #*앞의 문자는 0개부터 무수히 많을 수있다. ac,abc,abbbbc,abbbbbbbbc 모두 매치
print(r.search('abbbbbbbbbbbbbbbbbbbbbbbbbbbbbc'))

r = re.compile('ab+c') #*와 같지만 1개 이상이여야한다 ac는 매치가 안됨
print(r.search('ac')) #None
print(r.search('abbbbbbbbbbc'))

r = re.compile('^a') #^는 시작되는 글자를 지정 a 로 시작되는 문자열만 찾아냄
print(r.search('avvvdjfnksdnflaskjn'))

r = re.compile('ab{2}c') #{}안의 숫자만큼 반복한것을 나타냄 abbc 와 매치
print(r.search('abbc'))

r = re.compile('ab{2,8}c') #2부터8까지 abbbbbbbbc , abbbc 이런 애들이 매치가됨
print(r.search('abc')) # None
print(r.search('abbc'))

결과값 

r = re.compile('a{2,}bc') #뒤에 bc가 붙으며 a의 갯수가 2개 이상인 경우와 매치
print(r.search('aabc'))

r = re.compile('[abc]') #문자들 중 한개의 문자와 매치
print(r.search('b'))

r = re.compile('[^abc]') #a,b,c 가 들어간 문자열을 제외한 모든 문자열과 매치
print(r.search('d'))

 

re.sub() : 정규표현식 패턴과 일치하는 문자열을 찾아 다른 문자열로 대체


import re
text="Regular expression : A regular expression, regex or regexp[1] (sometimes called a rational expression)[2][3] is, in theoretical computer science and formal language theory, a sequence of characters that define a search pattern."
re.sub('[^a-zA-Z]',' ',text)

분석해보면

text 라는 문자열 안에 a-z(a부터z까지) A-z 를 제외한 나머지를 ' ' 스페이스로 대체해라 !

 

반응형
Comments